Я хотел бы внедрить на все сессии.save (), как показано ниже.
public class MyHbnSession implements Session {
@Override
public Serializable save(Object obj) throws HibernateException {
if(obj instanceof MyClass) {
MyClass mc = (MyClass) obj;
mc.setVal("Injected Prop");
}
return super.save(obj);
}
}
И затем всякий раз, когда я получаю сеанс, я должен получить свой пользовательский объект сеанса
MyHbnSession session = HibernateUtil.getSessionFactory().openSession();
Я не мог найти, как это сделать с помощью спящего режима.И две основные вещи, которые я пропускаю
- org.hibernate.Session - это интерфейс, а org.hibernate.impl.SessionImpl - это фактическая реализация.Но в этом случае сеанс реализован
- Как сообщить hibernate, что это наша пользовательская реализация сеанса, и это должно использоваться фабрикой сеансов
Пожалуйстапролить мне немного света на то, что мне не хватает.Спасибо за любую помощь.
PS: я могу сделать это с aspectj, но не хочу по многим причинам.