MIFOSX-175: Fix issue with one-to-one mapping for arrears on loan.

This commit is contained in:
Keith Woodlock
2013-03-06 11:29:52 +00:00
parent 3850f22140
commit fed9f6dc68
4 changed files with 33 additions and 32 deletions
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -21,6 +21,7 @@ import javax.persistence.CascadeType;
import javax.persistence.Column; import javax.persistence.Column;
import javax.persistence.Embedded; import javax.persistence.Embedded;
import javax.persistence.Entity; import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn; import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne; import javax.persistence.ManyToOne;
import javax.persistence.OneToMany; import javax.persistence.OneToMany;
@@ -243,7 +244,7 @@ public class Loan extends AbstractPersistable<Long> {
@Embedded @Embedded
private LoanSummary summary; private LoanSummary summary;
@OneToOne(mappedBy = "loan", cascade = CascadeType.ALL, optional = true, orphanRemoval = true) @OneToOne(mappedBy = "loan", cascade = CascadeType.ALL, optional = true, orphanRemoval = true, fetch = FetchType.LAZY)
private LoanSummaryArrearsAging summaryArrearsAging; private LoanSummaryArrearsAging summaryArrearsAging;
@Transient @Transient
@@ -14,8 +14,6 @@ import javax.persistence.Table;
import javax.persistence.Temporal; import javax.persistence.Temporal;
import javax.persistence.TemporalType; import javax.persistence.TemporalType;
import org.hibernate.annotations.GenericGenerator;
import org.hibernate.annotations.Parameter;
import org.joda.time.LocalDate; import org.joda.time.LocalDate;
import org.mifosplatform.infrastructure.core.service.DateUtils; import org.mifosplatform.infrastructure.core.service.DateUtils;
import org.mifosplatform.organisation.monetary.domain.MonetaryCurrency; import org.mifosplatform.organisation.monetary.domain.MonetaryCurrency;
@@ -35,13 +33,15 @@ import org.springframework.data.domain.Persistable;
*/ */
@Entity @Entity
@Table(name = "m_loan_arrears_aging") @Table(name = "m_loan_arrears_aging")
@org.hibernate.annotations.GenericGenerator(name = "loan-primarykey", strategy = "foreign", parameters = { //
@org.hibernate.annotations.Parameter(name = "property", value = "loan") //
})
public final class LoanSummaryArrearsAging implements Persistable<Long> { public final class LoanSummaryArrearsAging implements Persistable<Long> {
@Id @Id
@GeneratedValue(generator = "SharedPrimaryKeyGenerator") @GeneratedValue(generator = "loan-primarykey")
@GenericGenerator(name = "SharedPrimaryKeyGenerator", strategy = "foreign", parameters = @Parameter(name = "property", value = "loan"))
@Column(name = "loan_id", unique = true, nullable = false) @Column(name = "loan_id", unique = true, nullable = false)
private Long id; private Long loanId;
@Column(name = "principal_overdue_derived", scale = 6, precision = 19) @Column(name = "principal_overdue_derived", scale = 6, precision = 19)
private BigDecimal totalPrincipalOverdue; private BigDecimal totalPrincipalOverdue;
@@ -64,7 +64,7 @@ public final class LoanSummaryArrearsAging implements Persistable<Long> {
private Date overdueSinceDate; private Date overdueSinceDate;
@SuppressWarnings("unused") @SuppressWarnings("unused")
@OneToOne @OneToOne(optional = false)
@PrimaryKeyJoinColumn @PrimaryKeyJoinColumn
private Loan loan; private Loan loan;
@@ -79,7 +79,7 @@ public final class LoanSummaryArrearsAging implements Persistable<Long> {
@Override @Override
public Long getId() { public Long getId() {
return this.id; return this.loanId;
} }
@Override @Override