У меня проблемы с этим запросом на соединение в моем приложении. У меня есть два класса, Encounter
и CheckedEncounter
. CheckedEncounter
- это временная модель, которую я использую для управления Encounters
, который уже был обработан. Это выглядит так:
@Entity
public class CheckedEncounters extends GenericModel {
@Id
@GeneratedValue
@Column(name="ce_id")
public int id;
@Column(name="ce_encounter")
@OneToOne
public Encounter encounter;
@Column(name="ce_synced")
public boolean synchronised;
}
Что я хочу сделать, это выбрать все Encounter, которые были созданы для определенного пользователя и у которых еще нет записи CheckedEncounters (поэтому только те, которые не могут быть найдены внутри таблицы CheckedEncounters)
С помощью этой строки я выбираю все мои встречи для моего конкретного пользователя:
List<Encounter> encounterRequess = Encounter.find("byTargetUser", myuser).fetch();
Изменить:
public static List<Encounter> getNewEncountersByTargetUser(User targetUser){
return Encounter.find("from Encounter as enc " +
"where not exists ( " +
"from CheckedEncounter as cenc " +
"where cenc.encounter = enc)" +
"and enc.targetUser = ?", targetUser).fetch();
}
Я пробовал это с предложенным запросом, но он выдает ошибку:
Execution exception
IllegalArgumentException occured : org.hibernate.hql.ast.QuerySyntaxException: CheckedEncounter is not mapped [from models.Encounter as enc where not exists ( from CheckedEncounter as cenc where cenc.encounter = enc)and enc.targetUser = ?]