私は次のエンティティを持っています
@Entity
public class Conversation implements Serializable {
@Id
private int Id;
@Column
private Alias AliasA;
// SNIP
}
と
@Entity
public class Alias implements Serializable {
@Id
private String alias;
@Column
private String personalName;
@OneToMany(mappedBy = "alias", cascade = CascadeType.ALL)
@MapKeyColumn(name="address")
private Map<String, Recipient> recipients = new HashMap<String, Recipient>();
}
と
@Entity
public class Recipient implements Serializable {
@Id
@GeneratedValue
private long id;
@Column
private String address;
@Column
private RecipientStatus status;
@ManyToOne
private Alias alias;
}
そして、次のJPQLクエリのようなものを作成したいと思います
SELECT conversation FROM Conversation conversation WHERE :sender MEMBER OF conversation.aliasA.recipients AND conversation.adId=:adID
:sender
私の地図の鍵はどこにありますか。ただし、MEMBER OF
キーワードはセットでのみ機能し、マップでは機能しないようです。JPA 2.0がKEY
キーワードを提供するはずだと思いますが、これはまだOpenJPAに実装されていないようです。これに代わるものはありますか?
更新:私の質問を明確にするための情報を追加しました。