2012-01-31 11 views
-1

私はHibernate HQLを理解するのに苦労していますが、SQLにしか使用されていません。すべてのヘルプは大幅にappriciatedされます:パラメータと条件で検索するためのHibernate 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; 
.... 
} 

Imは、特定の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); 
関連する問題