将Hikari设置为我们的Grails应用程序后(如here所述), 我必须通过观察发现,当在Gorm域对象中使用onAfterSave时,hibernate行为会突然改变:
org.springframework.dao.DataIntegrityViolationException: Hibernate operation: could not execute statement; SQL [n/a]; ERROR: insert or update on table "xxx" violates foreign key constraint "FK_9rkehgw2fq54vy4o8yw6xqd1u"
Detail: Key (attribution_id)=(1013967) is not present in table "attribution".; nested exception is org.postgresql.util.PSQLException: ERROR: insert or update on table "xxx" violates foreign key constraint "FK_9rkehgw2fq54vy4o8yw6xqd1u"
其中(如您所见)引用的对象具有id(1013967),因此应该提交保存事务并且不应该存在违规。删除Hikari再次修复了这种行为。
我认为这与事务隔离和/或自动提交设置有关系;但是,当池管理器从Tomcat更改为Hikari时,为什么行为会发生变化?
要恢复原始Grails行为需要进行哪些设置?
谢谢