Hibernate 是否可以在保存对象之前随时调用验证方法

Hibernate 是否可以在保存对象之前随时调用验证方法,hibernate,activerecord,jpa,jpa-2.0,Hibernate,Activerecord,Jpa,Jpa 2.0,在ActiveRecord中,可以检查对象的状态在某个时间点是否有效 >> foo.valid? => false 在JPA2中是否有类似的方法,因为验证框架实际上在保存|更新之前在JPA中触发?是的,您可以创建在不同事件发生时触发的事件侦听器,例如在实体被持久化、修改等之前 这里有一个基本用法 在实体bean中创建一个方法 使用@PrePersist、@PostPersist注释之一对其进行注释 该方法中的代码将在bean中的那个(那些)生命周期事件中被调用 您还可以在

在ActiveRecord中,可以检查对象的状态在某个时间点是否有效

>> foo.valid?
=> false

在JPA2中是否有类似的方法,因为验证框架实际上在保存|更新之前在JPA中触发?是的,您可以创建在不同事件发生时触发的事件侦听器,例如在实体被持久化、修改等之前

这里有一个基本用法

  • 在实体bean中创建一个方法
  • 使用@PrePersist、@PostPersist注释之一对其进行注释
  • 该方法中的代码将在bean中的那个(那些)生命周期事件中被调用
您还可以在单独的类中创建回调逻辑,并通过类级注释(@EntityListeners)将这些侦听器附加到实体bean


这里有很多关于调用这些侦听器的顺序、继承它们等的内容,在这里进行详细说明。查找。

我知道验证框架,我的问题是,在保存对象之前,我是否能够调用一些方法来查看对象在任何时间点是否有效。这在Rails中是可能的,但在JPA2中是可能的吗?如果您真的了解验证框架,您就会了解JavaEE6验证API,以及它(以及其他)Hibernate验证实现。这个家伙提供了很多不同的验证器,你可以通过简单地注释你的字段/类来启用,它让你很容易地创建你的自定义验证器。最后,您可以随时要求它验证您的bean。真的,你认为Rails比Java有更多的选项/库?真的吗?我只是想确认可以随时调用bean验证。我对java验证框架的强大性毫不怀疑,我一生都在使用它,但我不确定这个功能。