Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    19

    jpa OneToOne "anomala" con Hibernate

    Ciao, è possibile creare una associazione unidirezionale OneToOne tra una tabella con chiave composta e una con chiave semplice ?
    Ho fatto n prove ma ho errore "... wrong number of column ..."
    Capisco che è una forzatura a livello di database, dovrebbe essere ManyToOne...
    Ho cercato in rete ma non ho trovato niente...
    Descirvo le classi entità (ho omesso tutto quello che non serve).

    Questa è l'entità che vorrei owner:

    codice:
    @Entity
    @Table(name="CliFor")
    @IdClass(CliForPK.class)
     public class CliForVO implements Serializable {
         
         private String idCliFor = "";
         private Integer tipoCliFor = 0;    
         private FornQuaVO fornQua;
        
        ...
    
         public CliForVO(){}
    
         @Id
         @Column(length=4)
         public String getIdCliFor() {
             return this.idCliFor;    
         }
    
         @Id
         public Integer getTipoCliFor() {
             return this.tipoCliFor;    
         }     
        
        ...
    
        @OneToOne(cascade=CascadeType.ALL, fetch=FetchType.EAGER, mappedBy="CliForVO")
        @JoinTable(name = "Fornitori",
        joinColumns = { @JoinColumn(name = "idForn") },
        inverseJoinColumns = @JoinColumn(name = "idCliFor"))
         public FornQuaVO getFornQua() {
            return fornQua;
        }
    }
    questa è la classe della chiave composta:

    codice:
    public class CliForPK implements Serializable {
         
         private String idCliFor = "";
         private int tipoCliFor = 0;    
    
         public CliForPK(){}
         
         public CliForPK(String idCliFor, int tipoCliFor){
             this.idCliFor = idCliFor;
             this.tipoCliFor = tipoCliFor;
         }
    
         public String getIdCliFor() {
             return this.idCliFor;    
         }
    
         public int getTipoCliFor() {
             return this.tipoCliFor;    
         }     
         ...
    }
    Questa è l'entità "figlia"

    codice:
    @Entity
    @Table(name="Fornitori")
    public class FornQuaVO implements Serializable {
        private String idForn = "";
        ...
        
        public FornQuaVO(){}
        
        @Id
        @Column(length=4)
        public String getIdForn() {
            return idForn;
        }
        
        ...
    }
    grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    147
    Ciao,scusami se ti disturbo ma io non riesco a creare le relazioni con jpa,ho praticamente provato a persistere un entità persona che in automatico con cascade.persist inserisce un altra entità giocatore..Il problema e che se poi recupero l'entità persona e provo a recuperare giocatore,mi da null come se la chiave di referenza non fosse stata inserita con l'operazione automatica cascade...Mi puoi contattare in privato varaltale@gmail.com se tu riesci a creare le referenze come fai?
    So che non c'entra,ma non so rispondere alla tua domanda e non vedo molti post di gente che lavora con jpa

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 © 2025 vBulletin Solutions, Inc. All rights reserved.