Вы хотите создать DeleteEventListener следующим образом:
public class SoftDeleteEventListener extends DefaultDeleteEventListener {
private static final long serialVersionUID = 1L;
@Override
public void onDelete(DeleteEvent event, Set arg1) throws HibernateException {
Object o = event.getObject();
if (o instanceof SoftDeletable) {
((SoftDeletable)o).setStatusId(1);
EntityPersister persister = event.getSession().getEntityPersister( event.getEntityName(), o);
EntityEntry entityEntry = event.getSession().getPersistenceContext().getEntry(o);
cascadeBeforeDelete(event.getSession(), persister, o, entityEntry, arg1);
cascadeAfterDelete(event.getSession(), persister, o, arg1);
} else {
super.onDelete(event, arg1);
}
}
}
подключите его к вашему persistence.xml вот так
<property name = "hibernate.ejb.event.delete" value = "org.something.SoftDeleteEventListener"/>
Также не забудьте обновитькаскады в ваших аннотациях.