2012-01-31 104 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);