我正在使用MySql 5.02数据库开发J2EE 6 Web应用程序。我试图生成一个ID的哈希摘要,每次我创建一个新的实体。这被设置为表格中的一列。获取新持久实体的ID(PK)
但是,我被困在显然很容易的东西上,并且根据我发现的搜索结果,可能。基本上我想检索新持久对象的ID(主键),但无论我尝试什么,它都会返回null。
的步骤如下是:
- 创建实体的实例 - >
userCard = new Users();
- 设置一些值对应的字段。
- 调用
EntityManager
的persist()
方法。
阅读一些论坛上后,我明白我必须persist()
后,无论是打电话flush()
,或使用merge()
和使用返回的实体来检索ID。他们的
public void createAndFlush(Users users) {
em.persist(users);
em.flush();
}
public Integer edit(Users users) {
return ((Users)em.merge(users)).getIdvcards();
}
无(其他一些组合中)的工作,那么,实体被成功地坚持着,但ID字段返回null。
这些是我想要检索的ID列的correspinding注释:
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "idvcards")
private Integer idvcards;
而且很明显,我的表的列idvcards设置为自动递增和主键。
也许我只是需要澄清我的Peristence-Management概念,但是如果我能得到一些提示来解决这个基本问题,我将不胜感激。
我赞成你张贴结果和友好评论:) – Bohemian 2011-06-10 10:28:21
也为我工作,谢谢。 – Puckl 2013-04-09 22:17:02