【发布时间】:2011-05-02 18:01:30
【问题描述】:
为什么这个多态查询不起作用?
String hql = """
FROM User u
WHERE
u.type.class = :typeClass
"""
return User.executeQuery(hql, [typeClass:Super])
我得到的只是以下异常:
Stacktrace follows:
java.lang.ClassCastException: java.lang.Class cannot be cast to java.lang.Integer
....
更新 该错误似乎仅在我尝试将类添加为命名参数时发生。例如,我没有收到此代码的错误:
String hql = """
FROM User u
WHERE
u.type.class = Super
"""
return User.executeQuery(hql)
更新2
这个问题让我很困惑。现在我不想再花时间在上面了。这就是我最终要做的事情:
def typeClass = Super.class.name
String hql = """
FROM User u
WHERE
u.type.class = $typeClass
"""
return UserMedia.executeQuery(hql)
真的很奇怪,无论我在尝试传递class 或class.name 时做了什么,我总是会收到错误消息。有和没有多行 groovy 字符串。
【问题讨论】:
标签: hibernate grails groovy grails-orm