如何在模型中设置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
答案 0 :(得分:2)
您可以从play.db.jpa.GenericModel
而不是play.db.jpa.Model
延伸来实现此目的。这将允许您手动设置主键。
事实上,Model
的作用是从GenericModel
延伸,因为这样做很常见Model
会自动生成主键(使用@Id @GeneratedValue public Long id
)。但是,如果出于某种原因想要设置自定义主键,那么从GenericModel
扩展是可行的方法。
实施例
@Entity
public class Community extends GenericModel {
@Id
public Long id;
public Community (Long id) {
this.id = id;
}
}
答案 1 :(得分:0)
请勿尝试自行设置id
,保存后应将id
加载到模型中。