Feeds de los foros

En la página principal de los foros encontrarás los enlaces al logo feed feed general y al de cada uno de los foros.

Subscribete para mantenerte informado de los cambios y responde a las dudas siempre que te sea posible

Buscar en el foro

Foro Persistencia

feed Foro Persistencia Foro: Persistencia

Nuevo Tema Nuevo Tema

Persist en un objeto complejo 24/06/2009 11:11
anonymous

Hola a todos.

 

Tengo el siguiente problema. Uso hibernate + spring en una aplicación que estoy desarrollando. El problema es que el objeto batch está compuesto entre otros por dos objetos de tipo Person.

 public class Batch {

    private Long identifier;

     ...

    private Person sellerParty;
    private Person buyerParty;

 

con sus métodos get y set

 

      /**
     * @return the sellerParty
     */
     @OneToOne(cascade=CascadeType.ALL)
     @JoinColumn(name="seller_id")
     public Person getSellerParty() {
     return sellerParty;
     }
    
     /**
     * @param sellerParty the sellerParty to set
     */
     public void setSellerParty(Person sellerParty) {
     this.sellerParty = sellerParty;
     }
    
     /**
     * @return the buyerParty
     */
     @OneToOne(cascade=CascadeType.ALL)
     @JoinColumn(name="buyer_id")
     public Person getBuyerParty() {
         return buyerParty;
     }

 

el problema es que cuando yo hago un persist sobre batch me da de alta un par de Persons a pesar de que a lo mejor estos ya existen. Me gustaria poder comprobar si existe y si existe no darlo de alta, al mismo tiempo me gustaría mantener la facilidad al a hora de recuperar un batch particular que se trae comprador y vendedor.

 

Muchas gracias

#unapprove_message#
RE: Persist en un objeto complejo 26/06/2009 15:42
jaro

Buenas, se me ocurren un par de ideas, a ver si alguna te puede ayudar:

1- Que al guardar el objeto Batch le estés asignando dos nuevos objetos de tipo Person en vez de dos personas que ya existan en base de datos. Si es así prueba a recuperar los objetos de tipo Person que ya existen y a pasarselos al objeto Batch antes de guardarlo. 

 2- En caso de que no sea eso, ¿has sobreescrito los métodos equals() y hashCode() de Person?. Si no lo has hecho te lo recomiendo y, si con los métodos sobreescritos sigue sin funcionar, ¿podrias pegar el contenido de dichos métodos?

Saludos 

#unapprove_message#
RE: RE: Persist en un objeto complejo 02/07/2009 13:37
anonymous Muchísimas gracias. El punto uno solventó el problema pues el equals lo estaba implementando correctamente.
#unapprove_message#
#thread_expired#.
Sun Microsystem Logo NHT-Norwick Logo

© 2002-2007 Asociación javaHispano