Hibernate注释HQL查询的自定义属性/列名称

时间:2017-08-03 08:12:10

标签: java hibernate hibernate-mapping hibernate-annotations

我开始从.hbm.xml文件转换为注释,并在我的.hbm.xml文件中获得以下内容

    <property name="Phonenumber" column="phonenumber" ... />

我的问题是,在许多Hibernate查询中,我使用像这样的属性

String queryString = "from Contact where Phonenumber like Something order by Somethingelse";
Query query = ContactDAO.getSession().createQuery(queryString);

所以我总是得到一个错误,因为该物业&#34; Phonenumber&#34;一旦我改变了#Phoeenumber&#34;就无法找到它。到&#34; phonenumber&#34;一切正常。

我为我的问题想了3个解决方案......

  1. 搜索&#34; Phonenumber&#34;的每一次出现。并将其改为phonenumber(我希望不要这样做,因为我们有 几千次出现的属性......)

  2. 找到一种方法来告诉hibernate它应该&#34; map&#34;列名称为以大写字母开头的属性...将 也是一个问题(但远小于1.),因为有 不仅第一个字母不同的属性。例如。

    <property name="defaultPhoneNumber" column="phoneNumber" ... />
    
  3. 在.hbm.xml中找到与样式相等的内容,可以在其中定义属性名称和属性列

  4. 任何人都知道如何节省大量时间将所有属性更改为正确的属性?

    我已经看过Hibernate NamingStrategy,但我不认为这是我需要的。

0 个答案:

没有答案