2

HQLを使用して2つのテーブルの特定の列でFULLJOINを使用しようとしています

List<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))
4

2 に答える 2

1

私の知る限り、==許可されていないので、を使用する必要があります=HQLのドキュメントを参照してください。

!=許可されていますが<>、標準SQLに近いため、使用することをお勧めします。

于 2013-02-22T09:35:05.743 に答える
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)));
于 2013-02-22T09:49:00.233 に答える