如何在hibernate中自动生成非id值?
我正在使用hibernate注释、spring、sessionFactory,并在context.xml中定义所有内容(比如…) 有人知道我怎样才能做到这一点吗?我查看了@PrePersist,但所有dao的etc都使用saveOrUpdate,而这两者似乎并没有同时进行。我认为@preUpdate可能会起作用,但同样的,它似乎没有被调用。有没有人能给我一些关于如何实现这一目标的想法 谢谢 您可以实现并将其挂接到SessionFactory中。然后实现侦听器以监视此特定对象类型,并根据需要分配外部ID 您可以使用SpringFactorybean的map属性初始化事件侦听器如何在hibernate中自动生成非id值?,hibernate,spring,annotations,sessionfactory,Hibernate,Spring,Annotations,Sessionfactory,我正在使用hibernate注释、spring、sessionFactory,并在context.xml中定义所有内容(比如…) 有人知道我怎样才能做到这一点吗?我查看了@PrePersist,但所有dao的etc都使用saveOrUpdate,而这两者似乎并没有同时进行。我认为@preUpdate可能会起作用,但同样的,它似乎没有被调用。有没有人能给我一些关于如何实现这一目标的想法 谢谢 您可以实现并将其挂接到SessionFactory中。然后实现侦听器以监视此特定对象类型,并根据需要分配外
<property name="eventListeners" ref="hibernateEventListenerMap">
<util:map id="hibernateEventListenerMap">
<entry key="pre-insert">
<list>
<ref bean="customEventListenerBeanNameHere"/>
</list>
</entry>
</util:map>
我查看了@PrePersist,但所有dao的etc都使用saveOrUpdate,而这两者似乎并没有同时进行。我认为@PreUpdate可能会起作用,但同样的,它似乎没有被调用
PrePersist/PreUpdate是JPA注释,因此要使它们工作,您必须使用EntityManager
有没有人能给我一些关于如何实现这一目标的想法
使用Hibernate Core的“等价物”,即拦截器或事件系统
参考文献
- Hibernate核心参考指南
- 你试过了吗
public void setId( Long p_id ) {
id = p_id;
this.externalId = "dev_" + StringUtils.leftPad(p_id.toString(), 5, '0') );
}
?
字符串utils来自谢谢,这非常有帮助-现在查看一下:-)
<property name="eventListeners" ref="hibernateEventListenerMap">
<util:map id="hibernateEventListenerMap">
<entry key="pre-insert">
<list>
<ref bean="customEventListenerBeanNameHere"/>
</list>
</entry>
</util:map>
public void setId( Long p_id ) {
id = p_id;
this.externalId = "dev_" + StringUtils.leftPad(p_id.toString(), 5, '0') );
}