我有一个简单的类实体,如果当前日期大于scheduledClassDateTime,我想在其中自动将类的状态更改为Expired。
我的类状态是一个枚举类型正在进行和过期。
我正在尝试使用下面的更改将状态更改为过期。
@Enumerated(EnumType.STRING)
@Formula(value = "case when class_Date_Time<now()) then 'EXPIRED' end ")
private ClassStatus classStatus = ClassStatus.OnGoing;
我收到以下错误(注意:现在已解决,但保存在下面以供其他人参考)
函数classDateTime。compareTo不存在
组织。springframework。刀。InvalidDataAccessResourceUsageException:无法提取结果集;SQL[n/a];嵌套的异常是org。冬眠例外SQLGrammarException:无法提取结果集
使现代化
>
这个问题已经在@stainslv原始提示的帮助下解决了,这是因为使用了Object查询而不是Native查询。我更改了问题中的代码来反映这一点。
现在的问题是@公式没有将EXPIRED保存到数据库中...它显示为空白。我不确定我是否正确使用了@公式
感谢您的帮助
您必须在@Formula中使用本机SQL,所以类似于:
classDateTime > CURRENT_TIMESTAMP
你SQL错了
case when classDateTime.compareTo(LocalDateTime.now())<0 then 'EXPIRED' [else 'VALID'] end
其他部分是可选的。原始SQL未命中end
问题内容: 我们有一个带有枚举字段-的实体,我们想使用JPA注释-为它设置默认值。 但是,当我们将实体保存到数据库时,此字段的值为和。对于布尔字段- 正确的默认值()已保存。 如果改为使用:,则会在保存时得到以下异常: 我们做错了什么?为什么它仅适用于布尔值? 问题答案: 当某些SQL代码在未为emailCommunicationStatus列指定任何值的情况下插入一行时,您所做的工作很有用。在这
我有上面的列举 @JsonValue公共字符串getValue(){return value;} 部分和一个示例测试类,如。。。 公开课Foo{ 这个测试类打印出来 @jsonValue在作为map键的枚举字段上使用时不工作。 序列化映射时是否有方法将此枚举用作键? 谢谢
我试图在Avro模式中创建Union字段,并用它发送相应的JSON消息,但要有一个字段-。 https://avro.apache.org/docs/1.8.2/spec.html#工会 具有相应JSON数据的最简单联合类型(avro模式)的示例是什么?(尝试制作不含NULL/空数据的示例和含NULL/空数据的示例)。
我想映射2个模型,其中每个模型都有几乎相同的枚举。让我展示: 第一个模型有枚举: 第二个模型具有枚举: 我有这样的自定义映射方法: 然后我用: 但是你可以得到: 我还创建了枚举映射器,如: 但我不需要单独设置,只希望枚举字段映射到内部映射中。简单地说,当我做枚举时,也应该映射。 谢谢 p、 对不起我的英语,希望我的问题有意义:)
问题内容: 我有这样的枚举: 有时我需要检查枚举中有多少个字段。最好的解决方案是什么?我应该使用方法“ values()。length”吗?也许,我必须像这样在枚举中创建常量字段: 什么是最快,更优雅的解决方案? 问题答案: 每次调用时,using 将创建该数组的新副本。有时我会创建自己的(或设置或映射,无论需要什么)以避免这种无意义的复制。不过,我 不会对其进行 硬编码…如果您只需要大小,则可以