[英]Embeddable PK Object not populating after persist and flush
我有一個嵌入式PK對象,在持久化和刷新到數據庫后不會填充id字段。 ID是數據庫中的自動增量字段。
現在通常,我只是嘗試刷新,但它會拋出以下錯誤:
“實體不再存在於數據庫中:entity.Customers [customersPK = entity.CustomersPK [id = 0,classesId = 36]]。”
public class Customers implements Serializable {
@EmbeddedId
protected CustomersPK customersPK;
...
}
@Embeddable
public class CustomersPK implements Serializable {
@Basic(optional = false)
@Column(name = "id")
private int id;
@Basic(optional = false)
@NotNull
@Column(name = "classes_id")
private int classesId;
.....
}
這是撥打電話的代碼
Classes cl = em.find(Classes.class, classId);
CustomersPK custPK = new CustomersPK();
custPK.setClassesId(cl.getId());
Customers cust = new Customers(custPK);
em.persist(cust);
em.flush();
// The problem is right here where id always equals 0
int id = cust.getCustomerspk().getId();
謝謝您的幫助。
為什么id不是0,你從來沒有設置它?
如果它是生成的id,則需要使用@GeneratedValue對其進行注釋,否則需要設置該值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.