2016-05-11 6 views
0

関連するレコードに置かれた制約に基づいてレコードを1対多の関係でフェッチする必要があります。例えば、私が持っている:関連するエンティティの1つが基準を満たす1対多の関係を持つすべてのエンティティを取得する

@Entity 
@Table (name = "LISTING") 
public class Listing 
{ 
    @Id 
    @GeneratedValue (strategy = GenerationType.SEQUENCE, generator = "LISTING_SEQ") 
    @SequenceGenerator (name = "LISTING_SEQ", initialValue = 1, allocationSize = 1, sequenceName = "LISTING_SEQ") 
    @Column (unique = true, nullable = false, updatable = false) 
    long id; 

    @OneToMany (mappedBy = "listing", fetch = FetchType.EAGER) 
    Set<ListingLineItem> listingLineItems; 

    ... 
} 

と....私はどちらかJPQL/HQLクエリを書いたり、私に関連ListingLineItemどこを持ってListing Sを与えることCriteriaBuilderを利用する必要が

@Entity 
@Table (name = "LISTING_LINE_ITEM") 
public class ListingLineItem 
{ 
    @EmbeddedId 
    ListingLineItemPK   id; 

    boolean ignored; 

    @ManyToOne (fetch = FetchType.EAGER) 
    @JoinColumn (name = "listing_id", nullable = false) 
    Listing     listing; 

    ... 
} 

を無視=真。 JPQLでここ

+0

私はフィールド 'ignored'がマッピングされている願っています! –

+0

は実際にマップされていません。ありがとう、これは意図したように動作していると私はそれを参照して今ばかげて明らかに見える:) – lmerry213

答えて

0

ソリューション:

SELECT l FROM Listing l, ListingLineItem lli 
WHERE lli.listing.id = l.id AND lli.ignored = true 
関連する問題