JPA Hibernate quiere que la carga perezosa devuelva la colección vacía

Estoy usando JPA-Hibernate en este momento y quiero que las colecciones estén vacías hasta que llame al get () asociado. Llevo varios días intentando sin éxito. La razón por la que quiero esto es porque uso Exterialize (o Serialize) y no siempre quiero que las colecciones estén allí cuando se envía la cadena serializada al cliente.

@Entity
public class Thread implements Externalizable {
    static final long serialVersionUID = 9L;


@OneToMany(mappedBy = "parentThread", fetch = FetchType.LAZY)
    @LazyCollection(LazyCollectionOption.EXTRA)
    public Collection<Reply> getReplies() {
        return replies;
    }

Y aquí está el modelo de respuesta:

@Entity
public class Reply implements Externalizable {
    static final long serialVersionUID = 8L;

    @ManyToOne
    @JoinColumn(name = "threadId", referencedColumnName = "id", nullable = false)
    public Thread getParentThread() {
        return parentThread;
    }

Este código es el que uso para serializar el modelo:

public static final String serialize(Serializable object) throws IOException, ClassNotFoundException {
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    ObjectOutputStream oos = new ObjectOutputStream( baos );
    oos.writeObject( object );
    oos.close();
    BASE64Encoder base64Encoder =  new BASE64Encoder();
    return  new String( base64Encoder.encode(baos.toByteArray()));
}

Esto es lo que utilizo para encontrar los objetos de hilo

models.Thread thread = em.find(models.Thread.class, threadId);

Si utilizo entityManager.find () o una consulta, todavía carga la lista de respuestas. Entonces, para ser más claro, me gustaría que la colección esté vacía cuando genere la Entidad. Entonces si llamo a get () me gustaría que se llene.

La siguiente imagen muestra que las respuestas están almacenadas en la lista. ¿No tienen ningún valor en ellos que supongo que se debe a que la carga perezosa significa que son entidades proxy que realmente no se han obtenido de la base de datos? Por favor, corrígete si estoy equivocado. Como nota al margen, si es posible almacenar la lista como un arraylist o alguna otra implementación de lista estándar sería genial. Entiendo que JPA desea la notación persistentBag / persistentSet, ya que pueden tener valores duplicados que la implementación estándar no permite y probablemente también otras razones. Pero para serializar el modelo al cliente sería genial no necesitar las bibliotecas y tampoco parecen funcionar con Android porque el SSID parece cambiar en las bibliotecas cuando se usa Android.

Realmente espero que esto sea posible. Gracias por adelantado!

Respuestas a la pregunta(1)

Su respuesta a la pregunta