Visualizzazione dei risultati da 1 a 4 su 4

Discussione: problemi con Update

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    45

    problemi con Update

    Salve,
    Sto utilizzando Hibernate e Java
    Ho un oggetto madre che al suo interno ha un Set di figli. ora quando vado ad inserire un nuovo figlio nel set dello oggetto madre. Effettuo l'update di madre nel database non risulta nulla mi dovrei trovare nel campo id_madre l'id della madre di quella persona ma è vuota

    cosi ho definito nella classe madre il set di figlie

    codice:
            Set personeFiglie;
    
            /**
    	* @hibernate.set lazy="true" inverse="true" 
    	* @hibernate.collection-key column="id_madre"
    	* @hibernate.collection-one-to-many class="persona.tipo.madre"
    	*
    	* @return Returns the PersoneFiglie.
    	*/
    	public Set getPersoneFiglie() {
    		return personeFiglie;
    	}
    	public void setPersoneFiglie(Set personeFiglie) {
    		
    		this.personeFiglie = personeFiglie;
    	}
    	public void addFiglia(Persone figlia){
    		if(this.getPersoneFiglie()==null){
    	           this.personeFiglie=new TreeSet();
    	       }
    		this.personeFiglie.add(figlia);
    	}
    cosi aggiungo una nuova figlia:
    codice:
     if(!madre.getPersonaFiglie().contains(figlia))
    		{
    			madre.addFiglia(figlia);
    		}
    		Domain.getInstance().update(madre);

    se mi faccio restituire nuovamente il set di Figlie la nuova figlia risulta essere inserita nel set ma se vado nel db a vedere nn risulta nulla
    Da cosa puo dipendere???
    il fatto che se vado modificare qualche altro campo di madre come nome o cognome ed eseguo l'update la modifica viene salvata...

  2. #2
    Beh imband sono anche io nella tua stessa situazione non so più dove mettere mano

    Piccolo Off topic: ogni tanto controlla se c'è fila all'autolavaggio

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    45
    Ho risolto.
    il problema sta qui pi precisamente con inverse=true:

    codice:
    /**
    	* @hibernate.set lazy="true" inverse="true"  
    	* @hibernate.collection-key column="id_madre"
    	* @hibernate.collection-one-to-many class="persona.tipo.madre"
    	*
    	* @return Returns the PersoneFiglie.
    */
    1. la relazione tra persona madre e filglie è definita come inverse (inversa di un'altra relazione) il che significa
    che le update non hanno effetto. Due possibili soluzioni:
    a) la relazione rimane inverse e si aggiunge un altro metodo getPersona mappato dritto (non inverse) se proprio ti serve l'elenco delle figlie come metodo nella classe Persona: a quel punto quando fai l'update dovresti fare setPersona(p) e poi fare l'update su domanda.
    b) aggiungere un oggetto PersonaRelazione con madre e figlia come attributi mappati

    Ti consiglio la prima...

    Ma se vuoi fai come ho fatto io:
    codice:
    /**
    	* @hibernate.set lazy="true" inverse="false" 
    	* @hibernate.collection-key column="id_madre"
    	* @hibernate.collection-one-to-many class="persona.tipo.madre"
    	*
    	* @return Returns the PersoneFiglie.
    */

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    45
    Originariamente inviato da hellmarvel
    Beh imband sono anche io nella tua stessa situazione non so più dove mettere mano

    Piccolo Off topic: ogni tanto controlla se c'è fila all'autolavaggio
    Come nn sai dove mettere mano io al posto tuo saprei...... ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.