当hibernate不恰当地插入表引用时,Hibernate @Formula注释导致sql异常错误

时间:2014-02-26 13:04:52

标签: java mysql hibernate

我正在尝试使用Hibernate @Formula将一些计算信息导入到我的一个Entity类中。这是代码:

@Formula("(select max(site_visits.`date`) from site_visits where site_visits.siteId = id)")
@Temporal(TemporalType.TIMESTAMP)
private Date lastSiteVisit;

我手动尝试过查询,但效果很好。问题是,当我请求对象时,SQL hibernate生成变得严重:它坚持将自己的表引用插入到我的列引用表达式的中间,所以我得到以下SQL错误:

Unknown column 'site_visits.site0_.date' in 'field list'

知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

使用别名

@Formula("(select max(sv.date) from site_visits sv where sv.siteId = id)")

也不要在查询中使用`