¿Cómo explícitamente carga perezosa de Objetos de colección?
Hasta ahora he encontrado la única manera de hacer esto es explícitamente pide un getter/setter del objeto mientras está conectado a la sesión: es decir

List < Account > accounts = Bank.getAccounts();
accounts.get(i).getAccountNumber();

Hay otro menos peligroso que manera de hacer esto?

Yo trabajo con la Primavera btw, así que dependiendo de qué servicio está siendo llamado, quiero cargar diferentes colecciones/obkjects

OriginalEl autor toomuchcs | 2010-11-27

1 Comentario

  1. 13

    No creo que el camino que están haciendo es peligroso con el objetivo de hibernate es ser transparente.

    Sin embargo, hay alternativas:

    1) Si usted desea siempre la carga de la colección, usted sólo puede hacer que la colección no se vuelva perezoso en la configuración. Tenga cuidado con la carga de datos demasiado grande…

    2) Si usted quiere, a veces, la carga de la colección, a continuación, dejar de lazy=true y añadir otro método DAO

    loadBankWithAccounts()

    y hacer lo que está haciendo, con un comentario acerca de por qué usted está inicializando la colección, o utilizar una consulta HQL con fetch. Echa un vistazo a la documentación.

    3) Echa un vistazo a la sección 19.1.4 de la documentación de hibernate, que describe cómo usar algo como

    Hibernate.initialize(bank.getAccounts())

    que le permite ser más explícito con su colección de inicialización…

    acabo de encontrar que hay algo así como un estado de Hibernación.inicializar(proxy Obj), pero no parece funcionar. donde se produce el problema es con un 1-1 relación. Acabo de hacer un estado de Hibernación.inicializar(leerling.getFoto())
    he actualizado mi respuesta con algo que podría ser útil, a lo largo de las líneas de lo que usted está tratando de…
    Hibernate.inicializar sólo inicializa los campos simples, no las relaciones…
    Wiles: Así que, ¿cómo iba yo a inicializar otro objeto o colección?
    como se mostró en su pregunta llamar al obtener en las relaciones. Es la misma cosa como un “inicializar” iba a hacer en cualquier caso. Eso es lo que siempre he hecho las obras.

    OriginalEl autor hvgotcodes

Dejar respuesta

Please enter your comment!
Please enter your name here