如何使用Criteria返回具有所选列的实体

28 hibernate criteria

我是Hibernate的新手.我想要一个List<User>使用hibernate标准,但只填充用户ID和名称字段.那可能吗?类似于下面显示的查询:

SELECT user.id, user.name FROM user
Run Code Online (Sandbox Code Playgroud)

问候.

Mat*_*nit 56

这正是预测的目的.这是一个例子:

  Criteria cr = session.createCriteria(User.class)
    .setProjection(Projections.projectionList()
      .add(Projections.property("id"), "id")
      .add(Projections.property("Name"), "Name"))
    .setResultTransformer(Transformers.aliasToBean(User.class));

  List<User> list = cr.list();
Run Code Online (Sandbox Code Playgroud)

事实上,如果你看一下"lazy property fetching"的文档,他们会特别说:


"避免不必要的列读取的另一种(更好的?)方法,至少对于只读事务,是使用HQL或Criteria查询的投影功能.这样就不需要构建字节码处理,这当然是一种首选的解决方案."


顺便说一下,您可能也有一个相关的问题: Hibernate Query By Example和Projections

  • 是否有可能通过HQL querry做到这一点? (4认同)