У меня есть класс SubscriptionProduct, расширяющий AbstractProduct.
@Entity
@Table(name = "AbstractProduct")
@EntityListeners(Auditable.class)
@Inheritance(strategy = InheritanceType.JOINED)
public abstract class AbstractProduct implements Serializable{
int code;
}
@Entity
@EntityListeners(Auditable.class)
@Table(name="SubscriptionProduct")
public class SubscriptionProduct extends AbstractProduct {
String description
}
Я хочу создать запись в журнале всякий раз, когда создается объект.
Я написал EntityListenerclass под названием Auditable.class
public class Auditable {
@PostPersist
public void createLogAfterSave(Object O) {
Session session = createLocalSession();
ActivityLog log = new ActivityLog();
log.setTablename(O.getClass().getAnnotation(Table.class).name());
log.setNewValue(O.toString());
log.setOperation("Create");
log.setOldValue(" ");
session.save(log);
}
}
Теперь, несмотря на то, что я ожидаю две строки, одну для продукта подписки и одну для продукта абстракции. Дважды создается метод createLogAfterSave с SubscriptionProduct.