我有一个存储(以及其他)演示文稿的数据库,使用JPA进行映射。这些演示文稿有一个开始时间和一个结束时间。
我想知道在添加新演示文稿之前是否存在重叠。我目前正在使用一个查询来选择具有相同房间和相同日期的所有演示文稿。
我想加时间。我的时间是使用自定义的java.sql.Time子类(我需要它用于自定义构造函数)。我显然不想在数据库中映射那些。现在我想检查某个时间是在另一个之前还是之后。
我目前正在使用查询SELECT p FROM Presentatie p WHERE p.lokaal.code = :lokaal AND p.dag = :dag AND ( p.begin <= :einde OR p.einde >= :begin)
,但这是有缺陷的,因为它无法比较时间类(我猜它评估为NULL,这可以解释零长度结果集)
我不知道该怎么做。我尝试将int time
添加到Time
类,但由于未使用JPA进行映射,因此无法访问它。
我还想知道它如何检查p.dag = :dag
,它是否等同于dag == dag2
或dag.equals(dag2)
?它是如何比较时间的? time > time2
(但这不能用Java编译,所以我猜它会转到time.compareTo(time2)>0
?