0
我有兩個實體,並且dept_id
是這裏的外鍵。多對一做多個查詢獲取記錄
public class Student implements Serializable {
...
@Id
@Column(name="id")
private Integer id;
@ManyToOne
@JoinColumn(name = "dept_id")
private Department department;
...
}
和
public class Department implements Serializable {
...
@Id
@Column(name="id")
private Integer id;
@Column(name = "name")
private String name;
...
}
現在我做了以下JPQL在那裏我有內部in
查詢各地的100個參數:
select o from Student o where o.id in(1,2,7,9,15,16, ...)
當我看到了JPA的日誌,我發現它是通過一個查詢取出由Student
100條記錄。之後,它是做100個單獨的查詢來獲取Department
每個Student
。到目前爲止,我的理解是I/O操作應該很慢。有什麼辦法可以通過單個查詢獲取所有內容嗎?
並且您在student.department上試過了「FETCH JOIN」? – 2014-10-12 09:37:38
我只是想'query.setHint(「eclipselink.join取」,「o.department」);',我想我可以用這個進一步的進展。 – 2014-10-12 10:11:34