我很难理解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]
答案 0 :(得分:1)
问题很小。我忘了把= false放在最后。这应该是:
List<KursKode> kursKodeList = getHibernateTemplate().find("from KursKode k where k.kurs.kursId = ? and not k.used=0", kursId);