我想了解如何在 Hibernate 中创建 DTO 对象。我已在 GitHub 上上传了示例的最小代码。
我有代码,我相信应该根据 HQL 选择查询的选择接收一个列表
List<Linked> linkedPurchases = session.createQuery(
"select new ru.maelnor.entity.Linked(c.id, s.id) " +
"from Purchase pl " +
"join Good c on pl.goodName = c.name " +
"join User s on pl.userName = s.name", Linked.class)
.getResultList();
我正在学习 Hibernate,并且对我的方法的正确性并不完全有信心,这是基于我在其他 ORM 方面的经验。也许我做错了什么?
我找到了一个基于使用Map的解决方案并将其添加到存储库;它可能对某人有用。但我仍然想弄清楚是否可以直接在查询中检索完整的对象。
List<Linked> linkedPurchases = session.createQuery(
"select new map(c.id, s.id) " +
"from Purchase pl " +
"join Good c on pl.goodName = c.name " +
"join User s on pl.userName = s.name", Map.class)
.getResultStream()
.map(map -> new Linked((Good) map.get("course"), (User) map.get("student")))
.toList();