似乎应该很简单,但是我找不到答案...我在EE7环境中将ElipseLink与Derby结合使用,并且具有一系列具有外键或组合键关系的表。
如果存在表A,B和C,其中A的主键是自动生成的。 B将其用作外键,C将其用作组合主键的一部分。
当自动生成的值是A中唯一保证的唯一值时,如何确定?
我的假设是,应在em.persist(entity)完成后以某种方式在实体管理器方法中使用它,或直接从属性中使用它。我已经确认创建了记录,但是在持久化之后使用getter方法时,该属性保持为空。
提前致谢,
约翰
最佳答案
对于生成类型IDENTITY,建议将persistence.xml设置为create或drop and create,以便EclipseLink可以创建一个表来跟踪下一个键。
在物理写入数据库之前,实体属性中不会发生对自动生成的键的更新。通过使用em.flush(),可以强制这样做,并且getter方法将返回更新的键值。
关于sql - 自动生成时找出主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22752117/