Deseo poder verificar si una sesión contiene una entidad de una clase/identificador determinada. No puedo ver una manera de hacer esto en este momento.Hibernate session.contains (Class clazz, Serializable id)
- toma un objeto entidad no clase + tecla de
get()
consultas de la base de datos si la entidad no está presente, que no quiero hacerload()
nunca se devuelve un valor nulo como un proxy se crea siempre por lo No puedo usar este método
¿Es posible hacer lo anterior sin efectos secundarios/consultas a DB?
Sólo por curiosidad - ¿por qué necesita saber si el objeto con el identificador dado es en la sesión? ¿No puedes simplemente hacer 'get (id)' y confiar en el hecho de que si el objeto ya está en Session, Hibernate devolverá esa instancia y no volverá a consultarla? –
En este caso, estoy intentando que hibernate interactúe con algunas memorias caché personalizadas, pero solo en instancias muy específicas, la mayoría de las veces estoy contento por el comportamiento predeterminado de presionar la base de datos, así que quiero verificar la sesión para ver si hay un objeto presente. , si no lo carga desde el caché. La clave es que no puedo molestar nada en la sesión ya que puede haber referencias a ella desde otros objetos con referencias de varios a uno. –
@MikeQ Tenías toda la razón sobre la forma en que funciona IdentityMap, por lo que mi respuesta ahora está eliminada. – Marcelo