当使用@Entity
annotaion hibernate注释的类使用SELECT * FROM class_name
之类的查询时。但由于某种原因,需要为类运行自定义选择查询。有没有办法提供这样的查询?
答案 0 :(得分:1)
是的,根据official hibernate reference,您可以这样做:
sess.createSQLQuery("SELECT * FROM CATS").addEntity(Cat.class);
或:
sess.createSQLQuery("SELECT ID, NAME, BIRTHDATE FROM CATS").addEntity(Cat.class);
答案 1 :(得分:0)
Criteria cr = getCurrentSession().createCritiera(class_name.class)
.setProjection(Projections.projectionList()
.add(Projections.property("id"), "id")
.add(Projections.property("name"), "name"))
.setResultTransformer(Transformers.aliasToBean(class_name.class));
List<class_name> list = cr.list();
作为select id,name from class_name
,这将返回List
个class_name
个包含对象的id
和name
以及class_name
中的其他变量将是null
(因为您只选择了id
和name
)
答案 2 :(得分:0)
我建议你从HibernateDaoSupport获取getHibernatTemplate()。之后你可以调用find(&#34;来自Class where ....&#34;),然后你就可以轻松找到一个可以强制转换为java类的对象。
即。 列表&lt;用户&gt; users =(List&lt; User&gt;)getHibernateTemplate(&#34;来自User&#34;);