自动生成时确定主键

时间:2014-03-31 01:07:58

标签: sql jpa derby

这似乎应该很简单,但我还没有找到答案......我在EE7环境中使用ElipseLink和Derby,并且有一系列具有外键或复合键关系的表。

如果有表A,B和C,其中A' s主键是自动生成的。 B将其用作外键,将C用作复合主键的一部分。

当它是A?

中唯一保证的唯一值时,如何确定自动生成的值

我的假设是它应该在实体管理器方法中以某种方式提供,或者在em.persist(实体)完成后直接从属性获得。我已经确认创建了记录,但是当我在持久化之后使用getter方法时,属性仍为null。

提前致谢, 约翰

1 个答案:

答案 0 :(得分:1)

使用生成类型IDENTITY时,建议将persistence.xml设置为create或drop and create,以便EclipseLink可以创建一个表来跟踪下一个键。

自动生成密钥的更新不会发生在实体属性中,直到物理写入数据库为止。通过使用em.flush(),可以强制执行此操作,getter方法将返回更新的键值。