【发布时间】:2017-11-14 18:04:31
【问题描述】:
我有一个简单的类实体,如果当前日期超过 scheduleClassDateTime,我想在其中自动将类的状态更改为过期。
My Class Status 是一个 Enum,类型为 OnGoing 和 Expired。
我正在尝试使用以下内容将状态更改为已过期。
@Enumerated(EnumType.STRING)
@Formula(value = "case when class_Date_Time<now()) then 'EXPIRED' end ")
private ClassStatus classStatus = ClassStatus.OnGoing;
我收到以下错误(注意:现在已解决,但保存在下面以供其他人参考)
FUNCTION classDateTime.compareTo 不存在
org.springframework.dao.InvalidDataAccessResourceUsageException:无法提取结果集; SQL [不适用];嵌套异常是 org.hibernate.exception.SQLGrammarException: could not extract ResultSet
更新
问题已在 @stainslav 原始提示的帮助下得到解决,这是因为使用了对象查询而不是本机查询。我更改了问题中的代码以反映这一点。
现在的问题是@Formula 没有将 EXPIRED 保存到数据库...它显示为空白。我不确定我是否正确使用@Formula
任何帮助表示赞赏
【问题讨论】:
标签: java spring hibernate jpa spring-data-jpa