我正在尝试使用HQL
在两个表的特定列上使用FULL JOINList<B> expiredMacs = getHibernateTemplate()
.find("from B b join A a where b.type != 'USER' and (b.id != a.id or (b.name == a.name and b.value != a.value))");
但是它会抛出错误的意外标记:=第1行,第325列附近
知道出了什么问题吗?
SQL中的
SELECT B.* FROM B b, A a WHERE b.type != 'USER' AND (b.id != a.id or (b.name == a.name and b.value != a.value))
答案 0 :(得分:1)
据我所知,==
是不允许的,您应该使用=
。请参阅HQL documentation。
!=
,但最好使用<>
,因为它更接近标准SQL。
答案 1 :(得分:1)
最后我找到了解决方案
List<B> expiredMacs = getHibernateTemplate()
.find(SELECT b from B b, A a where b.type <> 'USER' and (b.id <> a.id or (b.name == a.name and b.value <> a.value)));