1
我試圖在另一個表中根據兩個可能的列之一設置一個列。 Since HQL updates不支持連接,我試圖解決並在set
聲明中使用OR
,但是,我無法在其上找到太多documentation。在Groovy HQL更新中使用表達式
類似疑問的出現在SQL的一些味道來工作,但我似乎無法得到它在Groovy的HQL工作:
String queryString = """
update Foo foo
set foo.myValue = (
(foo.fooType = :typeBar AND :barFlag = true) OR
(foo.fooType = :typeBaz AND :bazFlag = true)
)"""
Map args = [
typeBar: Type.BAR,//String
typeBaz: Type.BAZ,//String
barFlag: bar,//Boolean
bazFlag: baz,//Boolean
]
Foo.executeUpdate(queryString, args)
我得到的例外是:
org.hibernate.hql.ast.QuerySyntaxException: unexpected AST node: OR near line ...