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 ...