2014-09-24 64 views
0

我有兩個實體類。休眠查詢檢查單個值與列表屬性

1.Course.java 
@Id 
@GeneratedValue(strategy = GenerationType.AUTO) 
private int id; 
private String name; 



2.Student.java 
@Id 
@GeneratedValue(strategy = GenerationType.AUTO) 
private int id; 
private String name; 
@ManyToMany 
private List<Course> course; 

現在我需要一個學生的列表,其中課程ID = 1或課程ID爲空; 查詢就像「FROM Student st WHERE st.course = 1或course id爲null」。 如何在hql中編寫這個查詢?

回答

1

你需要一個連接:

select s from Student s inner join s.courses c where c.id = 1 

請注意,我選擇了course重命名字段courses在此查詢:學生有很多課程,並最終小號使得清楚了。

+0

我該如何檢查null – galeb 2014-09-24 06:42:25

+0

檢查null是什麼? – 2014-09-24 06:43:24

+0

檢查是否有課程。因爲在這種情況下課程並不重要。 – galeb 2014-09-24 06:47:47