0

我试图弄清楚哪些方法正在调用 Validator 接口的 validate() 函数,这样我就不会手动调用该函数(如果有的话)。但是,如果以下方法正在调用 validate() 函数,我无法找到正确的文档。

我猜测以下函数调用 validate() 函数:

Session.save() 
Session.update() 
Session.saveOrUpdate() 

(会话是一个休眠会话)

4

1 回答 1

0

这些方法都不会触发验证。文档说:

每当 PreInsertEvent、PreUpdateEvent 或 PreDeleteEvent 发生时,侦听器将验证实体实例的所有约束,如果违反任何约束,则抛出异常。在 Hibernate 进行任何插入或更新之前,将默认检查对象。默认情况下,预删除事件不会触发验证。

因此验证将在刷新时发生,就在 Hibernate 在数据库中插入或更新实体之前。

于 2013-05-04T21:09:46.860 回答