如何从类中选择一列并将其转换为Long列表

时间:2013-05-09 05:28:03

标签: hibernate

我有一个名为“Store”的类,它映射到名为“STORE”

的DB表

我想从此表中选择一个列(列名=“ID”)并将其作为Long列表返回。

我尝试了这个,但它不起作用:

标准cr = dbs.createCriteria(Store.class) .setProjection(Projections.projectionList()。add(Projections.property(“id”),“id”)) .setResultTransformer(Transformers.aliasToBean(Long.class)); return cr.list();

我想我知道它为什么不起作用,这是因为“Long”是不可变的并且没有setter。

谢谢!

1 个答案:

答案 0 :(得分:0)

首先,Criteria api对动态生成的查询非常有用,但过于复杂,导致静态查询的可读性和可维护性较低。您应该使用HQL进行这样一个简单的静态查询:

String hql = "select store.id from Store store";
// now execute the query

如果您坚持使用Criteria,则应该组成相同的查询:

Criteria c = session.createCriteria(Store.class, "store");
c.setProjection(Projections.property("store.id"));
// now execute the query