Aggiungere un listener alle istanze MessageInstance
package it.sistematica.isharedoc.persistence;
import it.neverworks.data.EntityManager;
import it.sistematica.isharedoc.model.instance.MessageInstance;
import javax.annotation.Resource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
@Repository
public class NumeraSchedeInstanceListener implements CustomInterceptor.Methods<MessageInstance> {
private final static Logger logger = LoggerFactory.getLogger(NumeraSchedeInstanceListener.class);
@Autowired
public NumeraSchedeInstanceListener(CustomInterceptor ci) {
ci.addInterceptor(MessageInstance.class, this);
}
@Resource EntityManager entities;
@Override
public void onAfterSave(MessageInstance instance) {
}
@Override
public void onSave(MessageInstance entity) {
}
@Override
public void onDelete(MessageInstance entity) {
}
}
Aggiungere un listener alle istanze ActivityInstance
Il procedimento è identico alla MessageInstance, basta sostituire MessageInstance con ActivityInstance.
Estendere l’istanza ActivityInstance
E’ possibile estendere la ActivityInstance o la MessageInstance per aggiungere attributi e metodi specifici all’oggetto hibernate.
In questo caso si dovrà creare un nuovo oggetto hibernate CabActivityInstance.java che estende ActivityInstance:
package it.sistematica.isharedoc.model.acea.instance;
import it.neverworks.persistence.Listener;
import it.neverworks.persistence.Listeners;
import it.sistematica.isharedoc.model.instance.ActivityInstance;
import it.sistematica.isharedoc.model.instance.ItemInstance;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;
import javax.persistence.Transient;
import org.hibernate.annotations.Cache;
import org.hibernate.annotations.CacheConcurrencyStrategy;
@Entity
@Table( name = "CAB_INSTANCEACTIVITY" )
@PrimaryKeyJoinColumn( name = "IS_W_INSTANCE_ID" )
@Inheritance( strategy = InheritanceType.JOINED )
@Listener
@Listeners({ "itemInstanceListener", "activityInstanceListener"})
@Cache( usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE, region="it.isharedoc.InstanceManagement" )
public class CabActivityInstance extends ActivityInstance implements Serializable {
@Transient
private static final long serialVersionUID = 0L;
public CabActivityInstance() {
this.type = "CabActivityInstance";
}
@Override
public Class<? extends ItemInstance> getInstanceClass() {
return CabActivityInstance.class;
}
}
Al nuovo oggetto CabActivityInstance è possibile aggiungere dei listener come indicato nel paragrafo “Aggiungere un listener alle istanze MessageInstance”.
