Hibernate Criteria Restriction字段命名混淆

时间:2014-05-05 12:07:49

标签: java mysql hibernate hibernate-criteria

当我们应用条件时,我对Hibernate上的限制字段命名标准感到困惑。我有一个名为" User"的数据库表。它包含一个名为" status_id "的字段。我使用eclipse hibernate工具生成POJO并创建了用户类,属性名称是" statusId "在课堂上,没有" _"登录。

现在我想知道以下代码,我必须使用哪个名称作为限制条件。

Criteria criteria = session.createCriteria(User.class)
                 .add(Restrictions.eq(<column to check>, new Int(1)));

我的困惑在于是否使用&#34; status_id &#34;或者&#34; statusId &#34;在列中检查标准。我搜索了解释并且找不到类似的问题。有人可以在这个问题上帮助我吗?

3 个答案:

答案 0 :(得分:3)

@Column(name = "DEPT_NAME", length = 100)

private String DEPTNAME;

使用原生sql 时应该使用 DEPT_NAME

使用 HQL 时和条件期间使用

DEPTNAME

答案 1 :(得分:0)

使用statusId。除非您尝试编写SQL,否则始终使用映射的POJOS中的字段名称而不是表列名称。

答案 2 :(得分:0)

您使用bean属性名称。如果您的列是 status_id 且您的班级中有int statusId,则条件的属性名称是bean属性的名称: statusId

这会生成SQL,并会确定您的查询需要 status_id

http://docs.jboss.org/hibernate/orm/3.5/javadocs/org/hibernate/criterion/Restrictions.html