hibernate - 如何使用 Criteria 返回具有选定列的实体

标签 hibernate criteria

我对 Hibernate 真的很陌生。我想要一个 List<User>使用 hibernate 条件,但仅填写用户 ID 和名称字段。那可能吗?类似于下面显示的查询:

SELECT user.id, user.name FROM user

问候。

最佳答案

这正是预测的用途。下面是一个例子:

  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();

事实上,如果您查看“惰性属性获取”的文档,他们会特别指出:

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

顺便说一下,有一个你可能也感兴趣的相关问题:
Hibernate Query By Example and Projections

关于hibernate - 如何使用 Criteria 返回具有选定列的实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/950718/

相关文章:

"in subselect"的 hibernate 标准

java - Criteria API 返回的结果集太小

java - JPA 标准在所选日期上添加一天

java - 如何获取 Hibernate entityManager.createNamedQuery 结果

java - 如何对具有相同字段和功能的多个实体进行建模

java - hibernate什么时候会更新相关实体?

java - 使用关键组合的错误 criteria.list

java - Hibernate-无法加载 Hibernate 配置 </mapping> 条目中声明的类

java - 访问 Runnable 中的集合时出现 LazyInitializationException

java - 将 CriteriaQuery JOIN 添加到 CriteriaQuery 后进行修改