Domanda

Esiste un modo per aggiungere un singolo criterio a un livello di factory (configurazione) di sessione che verrà applicato a tutti entite recuperati con una Session? Abbiamo l'obbligo di non eliminare alcuna riga dal nostro database ma di "quot" " entità cancellate in quanto tali in modo tale da non partecipare a ulteriori operazioni.

So che possiamo semplicemente recuperare tutte le entità attraverso un'interfaccia comune (ad esempio un oggetto Dao di base comune), ma l'approccio con filtro globale sarebbe meno soggetto a errori in quanto non richiede la conoscenza dell'uso di questa interfaccia comune .

È stato utile?

Soluzione

The Hibernate Documentation approfondisce un po 'di più . Sembra che il modo migliore per gestirlo sia con i filtri.

Per prima cosa, definisci un fitler in una classe o collezione in questo modo:

<filter-def name="IsDeletedFilter">
  <filter-param name="IsDeleted" type="bool"/>
</filter-def>

Quindi lo allevi a una classe o a una raccolta:

<class/set  ...>
...
<filter name="IsDeletedFilter" condition=":IsDeleted = Is_Deleted"/>

Purtroppo, devi farlo con ogni classe che desideri eliminare. Ma potresti essere in grado di mappare una classe base SoftDeleteEntity e avere una tabella per gerarchia di sottoclassi.

Ho anche visto alcune persone affermare di poterlo fare con gli ascoltatori, anche se non so come.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top