【发布时间】:2018-04-19 07:02:25
【问题描述】:
我是 hibernate 新手,不能 RTFM,所以我希望有人能帮我节省很多时间。
我的数据库中的对象之间存在多对多关系。假设员工和工作。
我想选择分配给给定员工的所有工作。我的对象 Jobs 有一个正在处理它的所有员工的列表。所以,在java中,它是:Job job.employees.contains(employee)。除了我需要把它变成一个休眠查询之类的东西。
现在我只是在选择所有内容后在 Java 中进行暴力破解。
getJobsByEmployee(Employee selectedEmployee) {
Query query = session.createQuery("from Job");
List<Job> allJobs = query.getResultList();
List<Job> emplJobs = new ArrayList<>();
for (Job job : allJobs) {
for (Employee empl : job.getEmployees()) {
if (empl.getId() == selectedEmployee.getId()) {
emplJObs.add(job);
break;
}
}
}
return emplJobs;
}
我该如何编写查询或 HQL,或者为此从我的数据库中获取数据?迄今为止,我只编写了最基本的查询,并且对 hibernate 中所有不同的语法选项感到不知所措。
PS 我正在使用 Spring ORM,因此由于事务性等原因,可能会缺少一些正常的休眠语法。
请不要问我为什么要这样做。我必须。
【问题讨论】:
标签: hibernate orm hql spring-orm