Я пытаюсь установить столбец в одной таблице на основе одного из двух возможных столбцов из другого. Since HQL updates не поддерживают соединения, я пытаюсь работать и использовать OR
в заявлении set
, однако я не могу найти много documentation на нем.Использование выражения в Groovy Обновление HQL
Похожие запросы появляются на работу в некоторых разновидностях SQL, но я не могу заставить его работать в HQL Groovy,:
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 ...