在Hibernate中调用validate函数时?

时间:2013-05-04 20:29:09

标签: hibernate validation

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

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

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

(Session是一个Hibernate会话)

1 个答案:

答案 0 :(得分:0)

这些方法都不会触发验证。 The documentation说:

  

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

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