2011-03-08 80 views
0

我有2類:教室學生HQL JOIN問題

Class Student { 
private Integer id; 
private ClassRoom classRoom; 
private String name; 

/* GETTERS AND SETTER */ 
} 


Class ClassRoom{ 
private Integer id; 
private Set<Student> students; 

/* GETTERS AND SETTER */ 
} 

什麼是HQL選擇具有studens所有教室叫約翰

回答

0

選項1:

select distinct ClassRoom 
from Student 
where Name = 'John' 

選項2:

from ClassRoom c 
where c in (select ClassRoom 
      from Student 
      where Name = 'John') 
0

嘗試

from ClassRoom inner join Student as student where student.name = 'John' 

您將需要使用完全合格(包括名稱空間)名稱類。

而且,如果該名稱來自客戶端的,你應該使用一個參數(例如:姓名)

+0

通過方式,這是非常基本的HQL。你應該瀏覽http://docs.jboss.org/hibernate/core/3.3/reference/en/html/queryhql.html – andypaxo 2011-03-08 20:02:01

+0

的文檔。這不是有效的HQL – 2011-03-09 00:09:40

+0

需要詳細說明嗎?我現在正在使用的項目中使用的HQL非常類似於此,它執行得很好。 – andypaxo 2011-03-09 02:06:21