【发布时间】:2011-09-23 16:53:19
【问题描述】:
我有一个嵌入式 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();
感谢您的帮助。
【问题讨论】:
标签: java jakarta-ee jpa persistence