我正在使用EMF和Teneo。我有一个具有派生属性的Employee类。我还为它定义了Hibernate @Formula注释,如下所示:
* @model
* default="0" transient="true" changeable="false"
* derived="true" ordered="false"
* annotation="teneo.jpa
* appinfo=' @Formula(\"select count(*) from Employee o where o.parent_e_id =e_id\")'"我原以为只要我通过调用.list()来加载Employee对象,就会触发查询。
但是,计算派生属性的查询永远不会触发(查看mysql日志)。
有没有关于我哪里做错了的想法,或者有什么关于去哪里找的建议?
发布于 2015-04-03 19:51:56
我正在回答我自己的问题,因为我已经找到了解决方案,而其他人可能需要它。
该属性必须定义如下:
* @model default="0" derived="true" ordered="false"
* annotation="teneo.jpa
appinfo=' @Formula(\"(select count(*)
from Employee o where o.parent_e_id=e_id)\")'"换句话说,该属性
另外,SQL语句应该放在括号中,因为hibernate将生成如下语句
select field1, field2, (select count (*) from Employe o where
o.parent_e_id_e_id) as fieldname from table1 ...https://stackoverflow.com/questions/29422644
复制相似问题