У меня есть две модели: Club и Location. У клуба может быть только одно место, а в месте может быть много клубов. В моих классах Pojo я определяю эти два, как показано ниже:Многопользовательский поиск в спящем режиме с критериями
// Club.java
public class Club {
private Location location;
// some other attributes and getters/setters
}
// Location.java
public class Location {
private int id; // primary key
// some attribues and getters/setters
}
И мои Hibernate отображения являются:
// some other mappings, foreign key is "location" column in my actual table, as // can be seen below
<many-to-one name="location" column="location" class="path/to/Club.java">
мне нужно искать клубы по их местоположению. И я использую в качестве критериев ниже,
Criteria crit = session.createCriteria(Club.class);
crit.createAlias("location.id", "location");
crit.add(Restrictions.eq("location", locationId);
Однако я получаю ошибку hibernate.QueryException: не ассоциации: идентификатор
Всякий раз, когда я пытаюсь заменить «location.id» с «места », то я получаю Ошибка IllegalArgumentException при вызове getter Location.id. До сих пор я не мог достичь своей цели в обоих направлениях. Просматривал его в Интернете в течение нескольких дней, но ни один из них не был полезен. В чем проблема?
Вы пробовали 'private Integer id'? не следует использовать примитивы с hibernate ... – joc
@joc будет делать, независимо от проблемы, спасибо! –