2016-11-30 1 views
0

Это моя схема:@Where аннотаций в спящий режим на детской таблице

event_details: - идентификатор (PK) - имя - описание

event_ticket_types: - идентификатор (PK) - event_id (Список литературы идентификатор (event_details) - ticket_name

EventDetail 

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

в моем EventDetail сущности, я добавил @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 аннотации, но я предполагаю, что они оба только на уровне класса. Попробуйте также добавить @Where аннотацию к методу @OneToMany выше.

Аннотации работают на уровне сущности, когда вы выбираете объект напрямую, но вам нужен он также для метода отношений, если вы хотите, чтобы он работал для соединений.

+0

Это работает. благодаря – nirvair

Смежные вопросы