0

私は、人が一度のクエリでその人が所有する選択されたオファーごとにリクエストのリストを取得することを望みます(たとえば、「select * from Request r where r.selectedOffer = (select o from Offer r.offerList.owner = :owner(? ?)). 可能ですか? または、2 つのクエリ (リクエスト用とオファー用) を使用する必要があり、選択したオファーをリクエストに設定する必要がありますか?

@Entity
public class Request() {

.....
@OneToMany(mappedBy = "requestId", fetch = FetchType.LAZY)
private Set<Offer> offerList = new HashSet<Offer>();

@Transient (or @OneToOne(mappedBy = "requestId"?? or another ways?)
private Offer selectedOffer;
.....
}
4

1 に答える 1

0

以下を試してください:

 "FROM Request req JOIN req.offerList offer "+
      " WHERE req.selectedOffer.offerId = offer.offerId AND offer.owner = :owner"

または、単にこれでうまくいくはずだと思います:

 "FROM Request req WHERE req.selectedOffer.owner = :owner"

エンティティofferIdの主キーであると想定しています。Offer

于 2012-11-06T16:48:30.347 に答える