Hibernate HQL,用于按参数和条件查找

时间:2012-01-31 20:52:03

标签: hibernate hql

我很难理解Hibernate HQL,只用于sql,我不明白我的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;
....
}

我试图仅为特定的Kurs获取“KursKode”。只有“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 个答案:

答案 0 :(得分:1)

问题很小。我忘了把= false放在最后。这应该是:

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