sql - 自动生成时找出主键

标签 sql jpa derby

似乎应该很简单,但是我找不到答案...我在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/

相关文章:

SQL 数据库/.SQL 文件到 CSV 文件

c# - LINQ 中的查询比 SQL 更复杂

java - Hibernate 中的一对一映射?

java - 如何在 Controller 外部使用 JPA 存储库更新行值?

hibernate - 来自 grails 的带有 javaDB 和 Hibernate 的用户表

mysql - Sql 计数查询(避免 "-"条目)

php - SQL - 调用其他SQL文件创建多个数据表

java - JPA 可以/应该用于返回值而不是实体吗?

java - 运行startNetworkServer时出错

java - 有没有办法使用 Derby DB 创建 Java 应用程序安装程序