Hibernate HQL для поиска по параметру и критериям - PullRequest
0 голосов
/ 01 февраля 2012

Я изо всех сил пытаюсь понять 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;
....
}

Я пытаюсь получить только "KursKode" для определенного Kurs. И только "KursKodes", которые "использовали = false" Итак, я попробовал это в моем 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 =? и не к.использовано]; вложенным исключением является org.hibernate.hql.ast.QuerySyntaxException: неожиданный узел AST:. около строки 1, столбец 74 [из no.dahlsdata.model.Kurs.KursKode k, где k.kurs.kursId =? а не к.использовано]

1 Ответ

1 голос
/ 01 февраля 2012

Проблема была только маленькая.Я забыл поставить = ложь в конце.Вот что должно быть:

List<KursKode> kursKodeList = getHibernateTemplate().find("from KursKode k where k.kurs.kursId = ? and not k.used=0", kursId);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...