如何在Hibernate中实现触发器?

时间:2015-09-18 08:55:12

标签: java hibernate triggers hibernate-mapping hibernate-criteria

两张国家和州的表格 两者都有name和id status列 插入状态表更新国家/地区列状态为“是”时 在Hibernate上

与Hibernate上的SQL触发器类似

如何在Hibernate中实现触发器????

2 个答案:

答案 0 :(得分:1)

您可以使用JPA侦听器,例如:

@Entity
@EntityListeners(StateListener.class)
public class State {
}

和你的StateListener类,注释@PostPersist

public StateListener {
  @PostPersist
  public void process(State state) {
    // set the status here
  }
}

hibernate doc:https://docs.jboss.org/hibernate/orm/4.0/hem/en-US/html/listeners.html

答案 1 :(得分:0)

我认为国家与国家之间存在一对多关系吗?您可以在国家/地区实体中使用addState(State state){this.status=true; this.states.add(state)}

等方法

如果您定义了级联,则保存country对象将导致state对象也被保存。并且status对象的country标志设置为true。

你也可以在那里实现removeState(State state),检查删除后列表(状态)是否为空,将status标志设置为false。