我有一个有多个模型类的 Spring Boot 项目
我想在我的 DAO 实现中使用多个模型类。
谁能解释一下我如何在这里使用 HQL 查询。
我看到的大多数示例都使用 CRUDRepository。但在我的理解中,这将我们限制在一个模型类中(如果我的理解有误,请纠正我)。
其次,使用 CRUDRepository 将我限制为非常具体的方法。但我需要的 HQL 查询可能更复杂,例如:
Query query = session.createQuery(from Employee where name=:name and place=:place and phone=:phone and gender=:gender);
即使对于这样的 HQL 查询,使用 CRUDRepository 也是标准做法吗? 否则我怎么能使用这样的 HQL 查询。 (如果可能的话,还请添加我需要添加的所有依赖项和注释)。我正在使用 Hibernate 和 postgres。
最佳答案
如果您希望在不使用存储库等的情况下执行动态 HQL 查询,这对我来说非常有用:
@Autowired
EntityManager entityManager;
@RequestMapping("/query")
@ResponseBody
public String testQuery() {
Query query = entityManager.createQuery("select u from User u");
List<User> users = query.getResultList();
users.forEach(u -> System.out.println(u.getFirstname()));
return "See Console";
}
它的好处是,如果您很快想要测试一个查询,并且您正在使用 Spring LiveReload、JRebel、DCEVM 或 HotSwap 和 Hybris,您可以更改查询并保存和刷新。
关于spring - 在 Spring Boot 中使用 HQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47894691/