【发布时间】:2011-10-16 00:25:00
【问题描述】:
我在我的应用程序中处理这个联接查询时遇到了困难。我有两个班级,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();
}
我使用建议的查询 marc 进行了尝试,但它给了我一个错误:
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 = ?]
【问题讨论】:
标签: java sql jpa join playframework