在数据库中持久化具有一对多关系的JPA对象时发生异常
hi在图片表a和表b中有两个表,如下所示:在数据库中持久化具有一对多关系的JPA对象时发生异常,jpa,Jpa,hi在图片表a和表b中有两个表,如下所示: @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
@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;
}
序列值是数字,当JPA将它们用作生成器时,它调用实体PK的setter方法。现在,您在使用序列时将PK定义为字符串,因此找不到匹配的setter。将你的PK类型改为长PK,事情就会顺利进行
any help will be welcomed.
thanks in advance