hibernate中的条件saveOrUpdate

时间:2012-04-12 09:50:34

标签: hibernate hql

我有一个具有日期属性的映射类。我想saveOrUpdate这个类的对象,以便只有比存储的更旧时才更新已存在的对象。

我该怎么做(尽可能整齐有效)?

我有很多这样的课程,所以我希望避免为所有人编写大量的自定义HQL。

2 个答案:

答案 0 :(得分:0)

试着看一下Spring的HibernateTemplate.saveOrUpdate。它具有与required.bieng开源相同的功能,你可以看到代码以及实现

答案 1 :(得分:0)

不确定这是如何在java中实现的,但我相信你可以做类似的事情。

仅供参考,下面的类是NHibernate特定的

您可以扩展DefaultSaveOrUpdateEventListener类并覆盖PerformSaveOrUpdate方法,在此方法中,您可以编写自定义代码,以帮助您识别包含Date属性的类(具有抽象类/接口,所有这些类都需要实现)然后设置此属性的值,然后调用基本的SaveOrUpdate方法。

然后在构建Configuration时添加此侦听器。有关如何执行此操作,请参阅Hibernate文档。

希望这会对你有所帮助。