JPA @Id @GeneratedValue annotations vs DB主键?

时间:2017-11-16 03:58:03

标签: jpa annotations

我有一个应用程序使用JDBC访问现有MySQL数据库并转换为JPA。我的数据库已经设置了自动生成的主键。我是否需要注释我的实体类w / @ Id,@GeneratedValue ...这已经在DB中定义了吗?注释是否会覆盖/已与已定义的DB主键/索引冲突?

2 个答案:

答案 0 :(得分:2)

它不会与数据库主键和JPA注释发生冲突。因为主键已经被编入索引,所以它根本不是问题。

您应该在实体类中添加注释。它不会与已定义的DB冲突。如果您在新的数据库环境中部署系统,则必须注释。

答案 1 :(得分:0)

我假设您在MySQL中使用自动编号,这些是自动生成的。

以下代码将满足您的需求:

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "table_id")

请注意GenerationType.IDENTITY策略?这告诉JPA使用自动生成的数据库值。