在Hibernate中映射列而不在Java类中使用属​​性

时间:2013-03-18 15:40:38

标签: java hibernate hql hibernate-mapping

是否可以使用Hiberanate映射数据库列,因此我可以在HQL查询中使用它,但不能将其映射到映射类中的实际属性?

我不需要在我的班级中使用这个属性,并且希望避免使用getter和setter的混乱,这种东西永远不会被使用。

我使用的用例是在某些行上设置一个标志,因此不同的进程将获取该行并对其进行处理。我们只需对此字段进行更新,如下所示:

 update FJ345KJ set wrkxGrumble=1 
 where wrkxGrumble = 0
 and -- more constraints comming here

由于数据库强制使用的表名和列名类似于哈希码,我们希望使用HQL进行更新,这可以使用漂亮的映射名称。因此我们需要在Hibernate中映射的列。

1 个答案:

答案 0 :(得分:2)

据我所知,这是不可能的。任何映射列都需要类中的变量。

您可以做的是:您使用属性access = "field"映射列,并在类中将变量声明为private。然后仍然声明了一个无用的变量(这不是性能问题,因为数据库无论如何都必须加载行),但是不需要getter和setter,并且因为变量被声明为private,所以它不会影响你的接口。 java类,我即它对其他课程不可见。