2017-03-01 99 views
-1

可以在JPA中更改实体变量ID的名称吗?目前,DAO保存方法使用实体ID。 我们在数据库中有多个现有表格,然后我们必须将ID列添加到所有表格中。有什么方法可以避免添加字段? 我想有一种可能性是重写DAO方法,但还有其他想法? 在此先感谢。在JPA中更改实体ID名称

+1

JPA不会强制您使用任何特定的命名策略,因此您的实体中不需要称为ID的变量。尽管如此,您确实需要一些独特的方式来识别您的实体如果您需要特定的解决方案,可能会展示您的问题的更多细节。 – Chris

回答

2

所以你的实体被定义为:

@Entity 
public class SomeEntity { 
    @Id 
    private Integer id; 
    //... 
} 
  1. 您不必对变量命名id,除非你真的想。你可以命名这个someEntityId和JPA或Hibernate关心。属性名称的唯一影响是NamingStrategy实现如何将其映射到数据库中的列名称。

  2. 如果我们需要存在命名策略不适用于我们的情况,我们可以重写命名策略并将特定名称应用于列。

    @Id 
    @Column(name = "some_entity_id") 
    private Integer id; 
    

    这实质上将映射id变量命名some_entity_id列。

希望有所帮助。