簡體   English   中英

持久化和刷新后不會填充可嵌入的PK對象

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM