Decir que tengo la siguiente clase mapeada-Hibernate:nulos vs colecciones vacías en hibernación
public class ClassA {
@OneToMany(fetch=EAGER)
private List<ClassB> bList;
}
Cuando leo un objeto de ClassA
de una sesión de Hibernate, el campo bList
se inicializa con un objeto PersistentList
, como se esperaba .
me encuentro con un requisito en el que en situaciones en las que la lista está vacía, necesito Hibernate para inicializar el campo bList
a null
, en lugar de con un vacío PersistentList
. En teoría, Hibernate tiene la información que necesita para hacer esto, ya que la búsqueda en la lista es ansiosa. El problema es que de acuerdo con section 6.1 of the Hibernate docs:
Debido a las modelo, propiedades de colección de valor relacional subyacente hacer no soporta semántica de valor nulo. Hibernate no distingue entre una referencia de colección nula y colección vacía.
Esto tiene mucho sentido, pero espero que alguien pueda inventar una estratagema astuta para superar esta limitación. Estoy pensando que quizás algún mecanismo de escucha/devolución de llamada me permita reemplazar listas vacías con referencias nulas.
Creo que esto puede llegar a ser la solución más simple, sí – skaffman
... pero no es muy bueno para las entidades cargados de forma liviana :) –