我们正在使用 Grails,它当然使用 hibernate 进行 O/R。在一个实例中,我们有多个请求试图删除同一个对象。第一个线程将删除,而尝试删除该对象的第二个线程将引发 StaleStateException。这正如预期的那样。根据文档:
http://docs.jboss.org/hibernate/envers/3.6/javadocs/org/hibernate/StaleStateException.html
这个例外: Also occurs if we try delete or update a row that does not exist.
现在,在我们的案例中,它也不例外。我们不在乎它已经被删除。我们不想在删除之前进行检查,我们只想进行异常处理,因为它并不是真正的异常。
我们真正想做的是,如果尝试删除并且对象不存在,则不会抛出此异常。
有没有办法用 Grails / Gorm 做到这一点?
我最好的理想是使用 HSQL 的一些 SQL 来进行删除,而不是使用 hibernate / grails API。
还有更好的吗?