Desidero poter verificare se una sessione contiene un'entità di una determinata classe/identificatore. Non riesco a vedere un modo per farlo al momento.Hibernate session.contains (Class clazz, ID serializzabile)
- prende un oggetto entità non classe + tasto
get()
interroga il database se l'entità non è presente che io non voglio fareload()
mai restituisce null come proxy viene sempre creato in modo Non riesco a utilizzare questo metodo
È possibile eseguire quanto sopra senza effetti collaterali/query su DB?
Solo per curiosità - perché avete bisogno di sapere se l'oggetto con l'identificatore data è nella sessione? Non puoi semplicemente fare 'get (id)' e fare affidamento sul fatto che se l'oggetto è già in Session, Hibernate restituirà quell'istanza senza interrogare di nuovo? –
In questo caso sto cercando di fare in modo che l'ibernazione interagisca con alcune cache personalizzate ma solo in istanze molto specifiche, il più delle volte sono felice per il comportamento predefinito di colpire il DB, quindi voglio verificare la presenza di un oggetto presente , se non lo carica dalla cache. La chiave è che non posso disturbare nulla già nella sessione in quanto potrebbero esservi riferimenti da altri oggetti con riferimenti molti-a-uno. –
@MikeQ Avevi assolutamente ragione su come funziona IdentityMap, quindi la mia risposta è stata cancellata. – Marcelo