如何在模型中设置id?我尝试这段代码:
public Community(Long id, ...) {
this.id = id;
....
}
但是当我这样做时:
Communtiy c = new (1, ...);
c.save();
hibernate 说:
Execution exception PersistenceException occured : org.hibernate.PersistentObjectException: detached entity passed to persist: models.Community
最佳答案
您可以通过从 play.db.jpa.GenericModel
扩展而不是 play.db.jpa.Model
来实现此目的。这将允许您手动设置主键。
事实上,Model
所做的是从 GenericModel
扩展而来,并且因为这样做很常见,Model
自动生成主键(通过使用 @Id @GenerateValue public Long id
)。但是,如果出于某种原因您想要设置自定义主键,那么从 GenericModel
扩展就是正确的选择。
示例
@Entity
public class Community extends GenericModel {
@Id
public Long id;
public Community (Long id) {
this.id = id;
}
}
关于java - 如何使用我的 ID 保存实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9544178/