2015-11-21 46 views
0

喜有在圖象表A和表2頁的表b如下:異常而在具有一對多關係DB持續JPA對象

@Entity 
@Table(name = "A") 
public class A implements Serializable { 

    @Id 
    @SequenceGenerator(name = "JOURNAL_CATEGORY_ID_GENERATOR", allocationSize = 1, sequenceName = "clm_jounal_category_config_seq") 
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "JOURNAL_CATEGORY_ID_GENERATOR") 
    @Column(name = "CLAIM_ID") 
    private String claimId; 

    @Column(name = "name") 
    private String name; 

    @OneToMany(cascade = CascadeType.ALL, mappedBy = "country") 
    private List<ClaimDTLS> claimDetails; 
} 

B Primary Key: 

@Embeddable 
public class BPK implements Serializable { 

    @Column(name = "code") 
    private String code; 

    @Column(name = "CLAIM_ID") 
    private String claimId; 
} 

B Entity: 

@Entity 
@Table(name = "B") 
public class B implements Serializable { 

    @EmbeddedId 
    protected BPK bpk; 


    @Column(name = "name") 
    private String name; 

    @MapsId("country_code") 
    @JoinColumn(name = "claimId", referencedColumnName = "claimId", insertable = false, updatable = false) 
    @ManyToOne 
    private A a; 
} 

當我嘗試堅持A型的對象在DB的值表b聲明ID未設置並且初始化爲零。 表A的主鍵是用oracle序列生成的。

any help will be welcomed. 
thanks in advance 

回答

0

序列值是數字,當JPA使用它們作爲生成器時,它調用實體PK的setter方法。現在,您在使用序列時將您的PK定義爲字符串,因此找不到匹配的setter。改變你的PK類型爲Long並且事情可以工作