JPA自己创建列

时间:2016-07-30 14:19:18

标签: hibernate jpa spring-boot

我正在尝试使用JPA

将表映射到类

    @Entity
    @Table(Data)
    public class AllData implements Serializable {
      @Id
      @Column(name="AppID")
      private String appID;
      @Column(name="firms_bad_dt_in_last")
      private String no_of_firms_has_bad_debt_in_last_3_years_Including_credit_card;
    }

现在当hibernate连接到数据库时,它正在创建一个名为no_of_firms_has_bad_debt_in_last_3_years_Including_credit_card的新列,而不是将其映射到现有列(firm_bad_dt_in_last)。我错过了什么?

我不想创建新列,我希望它映射到现有列并从中获取数据..我该怎么做?谢谢!

我正在使用spring-boot。

2 个答案:

答案 0 :(得分:0)

如果db中不存在这些表,那么默认情况下hibernate将获取属性名称并使用这些属性名创建表。如果db中存在表,那么你在db表中提到的列名是什么必须与@Column(name =“”)中应该提到的列名相同,然后才会发生映射。

答案 1 :(得分:0)

如果要关闭此功能,可以更改以下hibernate属性。此外,如果您使用的是postgressql或任何其他具有区分大小写列的数据库,那么您需要检查列所属的情况。

<prop key="hibernate.hbm2ddl.auto">validate</prop>