2012-04-12 2 views
1

У меня есть сопоставленный класс, обладающий свойством date. Я хотел бы сохранить объектыOrUpdate этого класса, так что уже существующий обновляется только в том случае, если он старше хранимого.Условный saveOrUpdate в hibernate

Как бы это сделать (аккуратно и эффективно, если возможно)?

У меня есть много таких классов, поэтому я бы надеялся избежать написания множества пользовательских HQL для всех них.

ответ

0

попробуйте взглянуть на HibernateTemplate.saveOrUpdate с весны. он обладает той же функциональностью, что и required.bieng с открытым исходным кодом вы также можете увидеть код для реализации

+0

Пошел по-другому, но я думаю, это выглядело многообещающим. – Bloodboiler

0

Не знаете, как это достигается в java, но я уверен, что вы можете сделать что-то подобное.

FYI, Классы, приведенные ниже, NHibernate конкретного

Вы можете расширить DefaultSaveOrUpdateEventListener класс и переопределить метод PerformSaveOrUpdate, в этом методе вы можете написать специальный код, который поможет вам определить классы Даты свойств в них (есть абстрактный класс/интерфейс, который все эти классы должны реализовать), а затем установить значение этого свойства, а затем вызвать базовый метод SaveOrUpdate.

Затем при создании Configuration вы добавляете этот слушатель. Пожалуйста, обратитесь к документам Hibernate о том, как это сделать.

Надеюсь, это вам поможет.

Смежные вопросы