我的数据库中有2个tabke之间的经典FK。 表A中由FK重新激活的表A.
我为A创建了一个实体,我希望它有一个布尔属性,表明它是否被至少1个B引用。
是否可以这样做,所以我不必添加一个列表,并且每次都检查它是否为空,即使我根本不在乎B? / p>
答案 0 :(得分:1)
您可以使用特定于hibernate,不符合JPA的@Formula注释。
@Formula("select count(*) from table_b where a_id = id")
private int countOfB;
public boolean hasB(){
return countOfB > 0;
}
答案 1 :(得分:0)
谢谢,让它合作:
@Formula(value = "(select count (TABLE_B.ID) from TABLE_B where TABLE_B.A_ID = id)")
1)放入select关键字,因为我正在处理另一个表 2)围绕整个语句括号,以避免SQL错误 3)不要在计数和左括号之间留一个空格,否则它会添加一个别名来计算和弄乱sql