Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    27

    Hibernate - Anomalia in relazione OneToMany e ManyToOne

    Buona sera
    Mi chiamo Moreno e premetto sono nuovo di java e specialemte di Hibernate.
    Sto utilizzando Spring Sts per sviluppare una Web Application.
    Ho un problema con le relazioni tra tabelle sviluppata con Hibernate.
    Vorrei poter evidenziare con screenShot la situazione delle tabelle e con il codice delle classi entities la situazione in cui mi viene presentato il problema.

    spiegazione sommaria del problema

    Le tabelle relazionate sono
    Prodotti Relazione molti a uno verso la tabella t_Stato_Prodotto
    T_Stato_Prodotto Relazione uno a molti con Prodotti
    Nello screenshot evidenzio la situazione delle tabelle con le rispettive relazioni
    Ho creato le classi entities delle tabelle con le notazioni Hibernate.
    Uso Spring STS come framework.
    Mi sembra che le relazioni siano coerenti, ma mi viene segnalato un errore e la compilazione va in errore.
    Posto il codice delle classi entities.



    Tabella Prodotti con relazione ManyToOne

    codice:
    package com.sif.webapp.entities;
    
    import java.io.Serializable;
    
    import java.util.Date;
    
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.FetchType;
    import javax.persistence.Id;
    import javax.persistence.JoinColumn;
    import javax.persistence.ManyToOne;
    import javax.persistence.Table;
    import javax.persistence.Temporal;
    import javax.persistence.TemporalType;
    import javax.validation.constraints.NotNull;
    import javax.validation.constraints.Size;
    
    @Entity
    @Table(name="PRODOTTI")
    public class Prodotti implements Serializable
    {
        
        private static final long serialVersionUID = 5673623511365971394L;
        
        private int idProdotto;
        private String descrProdotto;
        private int tipologia;
        private int categ;
        private int compet;
        private int dispon;
        private int scomin;
        private float prezzo;
        private int qtavend;
        private String pathImange;
        private int keyUserOp;
        private Date dateOp;
        private T_Stato_Prodotto tstatoprodotto;
        
        public Prodotti()
        {
            
        }
    
        @Id
        @Column(name= "IdProdotto", unique = true,nullable = false)
        @NotNull(message = "{NotNull.Prodotto.IdProdotto.validation}")
        public int getIdProdotto() {
            return idProdotto;
        }
    
        public void setIdProdotto(int idProdotto) {
            this.idProdotto = idProdotto;
        }
        
        @Column(name= "IdProdotto",nullable = true)
        @Size(min=2, max=50, message = "{Size.Prodotto.descrProdotto.validation}")
        public String getDescrProdotto() {
            return descrProdotto;
        }
    
        public void setDescrProdotto(String descrProdotto) {
            this.descrProdotto = descrProdotto;
        }
    
        @Column(name= "Tipologia")
        public int getTipologia() {
            return tipologia;
        }
    
        public void setTipologia(int tipologia) {
            this.tipologia = tipologia;
        }
        
        @Column(name= "Categoria")
        public int getCateg() {
            return categ;
        }
    
        public void setCateg(int categ) {
            this.categ = categ;
        }
    
        @Column(name= "Competenza")
        public int getCompet() {
            return compet;
        }
    
        public void setCompet(int compet) {
            this.compet = compet;
        }
    
        @Column(name= "Disponibile")
        public int getDispon() {
            return dispon;
        }
    
        public void setDispon(int dispon) {
            this.dispon = dispon;
        }
    
        @Column(name= "ScortaMinima")
        public int getScomin() {
            return scomin;
        }
    
        public void setScomin(int scomin) {
            this.scomin = scomin;
        }
    
        @Column(name= "Prezzo")
        public float getPrezzo() {
            return prezzo;
        }
    
        public void setPrezzo(float prezzo) {
            this.prezzo = prezzo;
        }
    
        @Column(name= "QtaVendute")
        public int getQtavend() {
            return qtavend;
        }
    
        public void setQtavend(int qtavend) {
            this.qtavend = qtavend;
        }
    
        @Column(name= "PathImage")
        public String getPathImange() {
            return pathImange;
        }
    
        public void setPathImange(String pathImange) {
            this.pathImange = pathImange;
        }
    
        @Column(name= "KeyUtentiOperation")
        public int getKeyUserOp() {
            return keyUserOp;
        }
    
        public void setKeyUserOp(int keyUserOp) {
            this.keyUserOp = keyUserOp;
        }
    
        @Column(name= "DataOperation")
        @Temporal(TemporalType.DATE)    
        public Date getDateOp() {
            return dateOp;
        }
    
        public void setDateOp(Date dateOp) {
            this.dateOp = dateOp;
        }
    
        @ManyToOne(fetch = FetchType.LAZY)
        @JoinColumn(name = "IdStatoProdotto")    
        public T_Stato_Prodotto getTstatoprodotto() {
            return tstatoprodotto;
        }
    
        public void setTstatoprodotto(T_Stato_Prodotto tstatoprodotto) {
            this.tstatoprodotto = tstatoprodotto;
        }
        
    
    }

    Tabella T:Stato_Prodotti con relazione OneToMany

    codice:
    package com.sif.webapp.entities;
    
    import java.io.Serializable;
    import java.util.Date;
    import java.util.HashSet;
    import java.util.Set;
    
    import javax.persistence.CascadeType;
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.FetchType;
    import javax.persistence.Id;
    import javax.persistence.OneToMany;
    import javax.persistence.Table;
    import javax.persistence.Temporal;
    import javax.persistence.TemporalType;
    import javax.validation.constraints.NotNull;
    import javax.validation.constraints.Size;
    
    @Entity
    @Table(name="T_Stato_Prodotto")
    public class T_Stato_Prodotto implements Serializable
    {
    
        private static final long serialVersionUID = -7871013132235153385L;
    
        private int idStatoProdotto;
        private String dStatoProdotto;
        private int keyUserOp;
        private Date dateOp;
        //private Set<Prodotti>  prodotti;
    
        private Set<Prodotti> prodotti = new HashSet<Prodotti>(0);
        
        public T_Stato_Prodotto()
        {
            
        }
    
        @Id
        @Column(name= "IdStatoProdotto", unique = true,nullable = false)
        @NotNull(message = "{NotNull.T_Stato_Prodotto.IdStatoProdotto.validation}")
        public int getIdStatoProdotto() {
            return idStatoProdotto;
        }
    
    
    
        public void setIdStatoProdotto(int idStatoProdotto) {
            this.idStatoProdotto = idStatoProdotto;
        }
    
    
        @Column(name= "DStatoProdotto")
        @Size(min=1, max=50, message = "{Size.T_Stato_Prodotto.dStatoProdotto.validation}")
        public String getdStatoProdotto() {
            return dStatoProdotto;
        }
    
    
        public void setdStatoProdotto(String dStatoProdotto) {
            this.dStatoProdotto = dStatoProdotto;
        }
        
    
        @Column(name= "keyUtentiOperation")
        public int getKeyUserOp() {
            return keyUserOp;
        }
    
    
        public void setKeyUserOp(int keyUserOp) {
            this.keyUserOp = keyUserOp;
        }
    
        @Column(name= "dataOperation")
        @Temporal(TemporalType.DATE)
        public Date getDateOp() {
            return dateOp;
        }
    
        public void setDateOp(Date dateOp) {
            this.dateOp = dateOp;
        }
    
        @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL, orphanRemoval = true, mappedBy="tstatoprodotto")
        public Set<Prodotti> getProdotti() {
            return prodotti;
        }
    
        public void setProdotti(Set<Prodotti> prodotti) {
            this.prodotti = prodotti;
        }
        
        
    }
    Grazie

    Moreno
    Immagini allegate Immagini allegate

  2. #2
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,135
    E l'errore dov'è?

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