Вложенный встраиваемый -AttributeOverride для встраиваемого в встраиваемый

У меня есть класс Money, который является @Embeddable

@Embeddable
public class Money implements Serializable, Comparable<Money> {
    @Column(name = "amount", precision = 15, scale = 2)
    private BigDecimal amount;
}

Когда я использую его несколько раз внутри объекта, все работает нормально. Например, код

@Entity
public class SomeEntity implements Serializable {

    @Embedded
    @AttributeOverride(name = "amount", column = @Column(name = "entry"))
    private Money entryValue;

    @Embedded
    @AttributeOverride(name = "amount", column = @Column(name = "leave"))
    private Money leaveValue;
}

выше работает отлично.

Теперь проблема возникает, когда у меня есть другой @Embeddable, в котором я хочу иметь экземпляры Money, и этот @Embeddable используется сущностью несколько раз. Пример:

  1. Embeddable

    @Embeddable
    public class ReportCostValues implements Serializable {
    
        @Embedded
        @AttributeOverride(name = "amount", column = @Column(name = "covered_by_grant"))
        private Money coveredByGrant;
    
        @Embedded
        @AttributeOverride(name = "amount", column = @Column(name = "own_resources"))
        private Money foundedFromOwnResources;
    
        @Embedded
        @AttributeOverride(name = "amount", column = @Column(name = "personal_contribution"))
        private Money personalContribution;
    
  2. Entity

     @Entity
     public class ReportCostEntity implements Identifiable<Long>, Serializable {
    
        @Id
        private Long id;
    
        @Embedded       
        private ReportCostValues contracted;
    
        @Embedded       
        private ReportCostValues current;
    
        @Embedded        
        private ReportCostValues previousReport;
    

Этот код выше не будет работать. Любые идеи, как подойти к этой проблеме?

15
задан K.C. 16 October 2013 в 09:57
поделиться