我正在尝试在我限定其中一个类属性值(Member.submissionId 和submission.id 作为长类型)的域类上运行 delete all。
这是我的代码:
def memberCount = Member.where{ eq( "submissionId", submission.id ) }.deleteAll()
这是我得到的例外:
nested exception is org.hibernate.hql.ast.QuerySyntaxException: unexpected token: member near line 1, column 57 [DELETE my.domain.Member member WHERE (member.submissionId=?)]
我引用提交对象的其他删除似乎工作正常:
def subErrorCount = SubmissionError.where{ eq( "submission", submission ) }.deleteAll()
对于这个删除,生成的 SQL 是正确的:
delete from submission_error where submission_id=?
我能看到的唯一区别是 SubmissionError 属于父 Submission 对象,其中 Member 通过其 submitId 属性(它属于另一个对象)具有到 Submission 的软链接。
有什么建议么?
编辑:另外,由于它生成的 SQL,我假设此删除方法不是级联删除是否正确?即属于选定成员的对象不会被删除。