Domanda

Se User è un'entità, e ho bisogno di memorizzare User in Session, sarà indipendente su richiesta successiva.

Per quanto ne sappia non ci sei solo 2 metodi per gestire questi oggetti indipendenti

  1. EntityMerge(session.user) - aggiornamento DB con l'oggetto della sessione (non sicuro)
  2. session.userID - entityLoadByPK() nuovo sulla richiesta successiva (più carico)

Sono questi gli unici 2 soluzioni alternative? Eventuali altri modi?

Secondo Tecniche avanzate con ColdFusion 9 ORM Integrazione scorrere Deck concorrenza con il metodo # 1 si gettano errore se un'entità è stato modificato il merge, ma come questo è utile? catturare il metodo eccezione e l'uso # 2?

Quando usare EntityReload()? Ho pensato che funziona allo stesso modo come EntityMerge(entity) ma non è così.

Grazie!

È stato utile?

Soluzione

Io tendo a memorizzare solo l'ID dell'utente che ha effettuato l'accesso a nella sessione.

Poi ho un metodo di facciata UserService.getCurrentUser (), che restituisce l'utente se ne ho bisogno.

In questo modo l'utente è sempre attuale, e mai distaccato.

Altri suggerimenti

Io in genere basta usare un oggetto proxy leggero (che contiene solo le proprietà di livello superiore) in seduta e caricare solo l'entità completa, se necessario esattamente nello stesso caso d'uso come hai descritto. Non utilizzare il metodo # 1 a meno che non si vuole veramente scottarsi (esperienza di parlare lì).

sessioni Hibernate sono pigri caricati, e non persistono. Così, mentre si ha l'oggetto in memoria CF, che stanno puntando ad una sessione Hibernate che è fuori portata, per la mancanza di una terminologia migliore. Per tornare nel campo di applicazione, che, fondamentalmente bisogno di svegliarlo alle vostre richieste successive, usando qualcosa come EntitySave () o EntityLoadByExample ()

Sono d'accordo che wrapping in un servizio non solo consente di evitare alcuni di questi problemi, ma nel complesso è meglio punto di vista architettonico che toccare direttamente l'entità.

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