我试图弄清楚哪些方法正在调用 Validator 接口的 validate() 函数,这样我就不会手动调用该函数(如果有的话)。但是,如果以下方法正在调用 validate() 函数,我无法找到正确的文档。
我猜测以下函数调用 validate() 函数:
Session.save()
Session.update()
Session.saveOrUpdate()
(会话是一个休眠会话)
我试图弄清楚哪些方法正在调用 Validator 接口的 validate() 函数,这样我就不会手动调用该函数(如果有的话)。但是,如果以下方法正在调用 validate() 函数,我无法找到正确的文档。
我猜测以下函数调用 validate() 函数:
Session.save()
Session.update()
Session.saveOrUpdate()
(会话是一个休眠会话)
这些方法都不会触发验证。文档说:
每当 PreInsertEvent、PreUpdateEvent 或 PreDeleteEvent 发生时,侦听器将验证实体实例的所有约束,如果违反任何约束,则抛出异常。在 Hibernate 进行任何插入或更新之前,将默认检查对象。默认情况下,预删除事件不会触发验证。
因此验证将在刷新时发生,就在 Hibernate 在数据库中插入或更新实体之前。