我对 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/