0

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

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

我试过这个,但它不工作:

Criteria cr = dbs.createCriteria(Store.class) .setProjection(Projections.projectionList().add(Projections.property("id"), "id")) .setResultTransformer(Transformers.aliasToBean(Long.class)); 返回 cr.list();

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

谢谢!

4

1 回答 1

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
于 2013-05-09T06:33:16.903 回答