1
我有两个对象Java的休眠:传递当前行的id子查询
Post {
long id
String post
Date lastUpdate
}
Tracker {
User user
Post post
Date viewed
}
User
和Post
是复合IDS的Tracker
在查询Post
我想弄清楚如果User
已经阅读最新的更新Post
所以SQL应该看起来像这样:
select count(*) as y0_
from nb_post AS this_
where (other_conditions)
or this_.lastUpdate > (select t_.viewed as y0_ from nb_post_tracker t_ where t_.post=this_.post))
我的Criteria
由于other_conditions部分,必须在Post
。有没有办法通过DetachedCriteria
或SubQuery
通过当前行的post.id
?
当事情变得与Hibernate变得复杂时,你不必一直试图弄清楚如何让Criteria做你想做的事情。你可以使用直接的SQL查询('Session.createSQLQuery()')。您仍然可以将实体添加到查询中,以便自动填充结果。 – markbernard
我可以只添加这部分作为查询吗? 'this_.lastUpdate>(从nb_post_tracker t_选择t_.viewed as y0_,其中t_.post = this_.post' – MandarK