这是我的模式:
活动详情:
-id(主键)
-姓名
-说明
活动门票类型:
-id(主键)
-事件id(引用id(事件详细信息)
-票证名称

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();

然后我将实体和数据映射到。
在查询日志中-我看到父表(event_details)使用where条件执行查询,即where deleted_at is NULL,但子表(event_ticket_types)没有where条件
我哪里做错了?

最佳答案

您没有显示@where注释在哪里,但我猜它们都只是在类级别。尝试将@Where注释添加到上面的@OneToMany方法中。
当您直接选择实体时,注释在实体级别工作,但如果您希望它用于联接,则在关系方法上也需要它。

09-30 09:44