Я пытаюсь реализовать метод, описанный здесь , но не могу заставить его работать.
Во время компиляции ошибок нет, но перехватчик не срабатывает.
DAO
public class GeneralInvoicesDAO {
@Autowired
private SessionFactory sessionFactory;
@Autowired
private Interceptor entityInterceptor;
@Transactional
public void update(GeneralInvoice object) {
Session session = SessionFactoryUtils.getSession(sessionFactory, entityInterceptor, null);
session.saveOrUpdate(object);
}
}
Класс перехватчика:
public class NewEntityInterceptor extends EmptyInterceptor implements Interceptor {
/**
*
*/
private static final long serialVersionUID = 2914362528125673753L;
@Override
public Boolean isTransient(Object n) {
Logger logger = Logger.getLogger(getClass().getName());
try {
logger.warn("test");
Boolean result = Boolean.FALSE;
BaseEntity entity = (BaseEntity) n;
if (entity.getId() <= 0L) {
entity.setId(null);
result = Boolean.TRUE;
}
logger.warn(result.toString());
return result;
}
catch (Exception e) {
e.printStackTrace();
return super.isTransient(n);
}
}
}
Config:
<bean id="newEntityInterceptor" class="de.crm.interceptor.NewEntityInterceptor" />
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
<property name="entityInterceptor" ref="newEntityInterceptor" />
</bean>
Что не так?
Спасибо