2012-01-31 100 views
-1

Im struggeling理解Hibernate HQL,只用於sql,我不明白我的HQL有什麼問題。任何幫助將大大appriciated:休眠HQL查找參數和條件

@Entity 
public class KursKode { 

@Id 
@GeneratedValue(strategy = GenerationType.AUTO) 
private long id; 
private String kursKode; 
private boolean used; 

@ManyToOne 
@JoinColumn (name = "kursId") 
@LazyCollection(LazyCollectionOption.FALSE) 
private Kurs kurs; 
.... 
} 

我試着去特定航向對接只獲取「KursKode」的。只有「used = false」的「KursKodes」。所以,我想這在我的DAO:

List<KursKode> kursKodeList = getHibernateTemplate().find("from KursKode k where k.kurs.kursId = ? and not k.used", kursId); 

但是這給了我以下錯誤: 數據接入故障

意想不到的AST節點。靠近第1行,第74列[來自no.dahlsdata.model.Kurs.KursKode k,其中k.kurs.kursId =?而不是k.used];嵌套異常是org.hibernate.hql.ast.QuerySyntaxException:意外的AST節點:。靠近第1行,第74列[來自no.dahlsdata.model.Kurs.KursKode k,其中k.kurs.kursId =?而不是k.used]

回答

1

問題只是很小。最後我忘了把= false。這是它應該是:

List<KursKode> kursKodeList = getHibernateTemplate().find("from KursKode k where k.kurs.kursId = ? and not k.used=0", kursId);