【发布时间】:2012-09-08 21:34:59
【问题描述】:
我正在学习JPA,我想知道我们如何告诉实体管理器主键字段是使用数据库自动递增到表中生成的? 我正在使用 Mysql 5.5 和 Oracle Enterprise For Eclipse(OEFE) 感谢您的帮助
【问题讨论】:
-
会认为对您选择的 JPA 实现的文档进行简单搜索会给出这样的结果;你没有说你使用的是哪一个...... EclipseLink?
我正在学习JPA,我想知道我们如何告诉实体管理器主键字段是使用数据库自动递增到表中生成的? 我正在使用 Mysql 5.5 和 Oracle Enterprise For Eclipse(OEFE) 感谢您的帮助
【问题讨论】:
如果您有一个需要自动递增的 id,那么,
@Id @GeneratedValue(strategy=GenerationType.IDENTITY)
private Long id;
【讨论】:
@GeneratedValue 和 @GeneratedValue(strategy=GenerationType.AUTO) 而不是 @GeneratedValue(strategy=GenerationType.IDENTITY),但并非所有数据库都如此。例如 PostgreSQL 将不适用,您应该只使用 @GeneratedValue(strategy=GenerationType.IDENTITY)