目前我面临以下问题,
我想要什么
我想收到一个时间段的集合,其中日期只是今天或更高。
我当前的实体类
Class doctor
@OneToMany(
orphanRemoval = true,
cascade = CascadeType.ALL
)
///////////WHERE startdate >= DATETIME.now() equivalent \\\\\\\\\\\\\\\\\\\\
private Set<TimeSlot> timeSlots = new HashSet<>();
在我的医生课上,我有一些时间段。时间段有一个startdate和enddate,我想过滤它以跳过数据库中的过去时隙。我只是不知道如何解决这个问题。
我尝试了什么
我尝试使用过滤器,它给了我整个列表。此外,我尝试使用where子句但由于需要固定数字或日期而无法工作。
我的问题
在这种情况下,你如何解决这类问题?我在jpa中唯一想要的是在实体类中添加一个where子句,该子句是伪代码:
WHERE startdate < DATETIME.now()
答案 0 :(得分:1)
您可以使用Hibernate注释@Where来过滤下划线集合:
@OneToMany(...)
@Where("startdate >= now()")
private Set<TimeSlot> timeSlots = new HashSet<>();
请注意,此批注的参数是本机sql(now()
是MySQL特定的函数)。