可以在布尔字段上使用@Formula吗?

时间:2019-03-02 16:13:23

标签: java spring hibernate spring-boot jpa

我想知道Java的哪些数据类型支持Hibernate的@Formula, 那么我有这个例子,如果有可能实现,我不知道如何管理它。

  @Formula("(select boolean_column from table_a where table_a.id = id)"
         + " && " 
         + "(select boolean_column from table_b where table_b.id = id)"") 
  private boolean result;

能帮我吗?

1 个答案:

答案 0 :(得分:0)

JavaDoc 状态

  

定义一个公式(派生值),该公式是一个 SQL片段,用作   在大多数情况下都是@Column替代方法。

SQL片段表示可以集成到生成的语句中的SQL片段。
由于Formula管理本机SQL语句,是的,您可以放入 DBMS 甚至子查询有效且可以理解的任何内容。

据我所知,仅支持原始类型(例如,还包括StringDate,以及与该表的列数据类型匹配的所有其他类型)。


对于您来说,您写的SQL片段不是有效的

该语句的替代方法可能是

(select (t1.boolean_column and t2.boolean_column)
from table_a as t1
inner join table_b as t2 on t1.id = t2.id
where t1.id = id)