2016-11-30 16 views
0

これは私のスキーマです:@Where注釈

event_details: - ID(PK) - に名前を付ける - 説明

event_ticket_types: - ID(PK) - のevent_id(参照ID(event_details) - 私のEventDetailエンティティで

EventDetail 

//bi-directional many-to-one association to EventTicketType 
    @OneToMany(mappedBy="eventDetail", cascade = CascadeType.ALL) 
    private Set<EventTicketType> eventTicketTypes; 

をticket_name、私は@Where(clause = "deleted_at is NULL")を追加しましたEventTicketTypeにも同じコードを追加しました

これはデータを取得する方法です。

EventDetail eventDetail = eventDetailRepository.getById(eventId); 
Set<EventTicketType> eventTicketTypes = eventDetail.getEventTicketTypes(); 

次に、エンティティとdtoをマッピングしています。クエリログで

- 私は親テーブル(event_details)はwhere deleted_at is NULLつまり条件が、子テーブル(event_ticket_types)が条件

どこそれは私が間違っているのことですがないところでクエリを実行していることがわかり?

答えて

1

あなたは@Whereアノテーションがどこにあるのかを表示していませんが、どちらもクラスレベルであると推測しています。上記の@OneToManyメソッドに@Whereアノテーションを追加してみてください。

アノテーションは、エンティティを直接選択するとエンティティレベルで機能しますが、エンティティレベルでエンティティを直接選択すると、エンティティレベルでも機能しますが、これをジョインに使用する場合は、リレーションシップメソッドでも必要になります。

+0

これは機能します。ありがとう – nirvair