是否可以在@Formula上使用具有布尔字段以比较日期的表达式逻辑?

时间:2019-03-03 05:33:20

标签: java sql postgresql hibernate jpa

我想知道以下示例是否适用于@Formula的休眠模式,也许有人可以帮助解决其他方法,以使用sql或查询。

@Formula("SELECT( NOW() > column_date - interval '1 minute' * column_a )")
private Boolean columnA;

当我执行该示例时,出现以下错误:

  

2019-03-03 05:29:57.568错误[service_a,4fedd46e4085e86f,4fedd46e4085e86f,false] 608 --- [nio-8090-exec-1] ohengine.jdbc.spi.SqlExceptionHelper:错误:模式“ table_a0_ “不存在位置:5560

     

2019-03-03 05:29:57.581信息[service_a,4fedd46e4085e86f,4fedd46e4085e86f,false] 608 --- [nio-8090-exec-1] oheinternal.DefaultLoadEventListener:HHH000327:执行加载命令时出错:

我的sql表达式有什么问题?

1 个答案:

答案 0 :(得分:1)

@Formula中应该有一个适当的SQL查询,例如:

@Formula("select NOW() > ( column_date + interval '1 minute' * column_a ) from some_table")

当然,假设您的dbms读取此语法。 some_table是一个表,其中column_datecolumn_a所在。

最简单的方法是对数据库运行SQL查询,并在成功后将其插入@Formula中。