Hibernate problema su relazioni oneToMany e ManyToOne

di il
3 risposte

Hibernate problema su relazioni oneToMany e ManyToOne

Sono nuovo del mondo Hibernate e mi trovo a gestire delle classi entities che vanno in errore.
Ho un problema su una relazione tra tabelle con Hibernate.
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.
Potete aiutarmi ?
La mia mail è ****
grazie
***

Tabella ManyToOne

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", nullable = false)	
	public T_Stato_Prodotto getTstatoprodotto() {
		return tstatoprodotto;
	}

	public void setTstatoprodotto(T_Stato_Prodotto tstatoprodotto) {
		this.tstatoprodotto = tstatoprodotto;
	}
	

}

Tabella OneToMany

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;
	}
	
	
}



Allegati:
19656_04903f915479161746704eb24c572a01.jpg
19656_04903f915479161746704eb24c572a01.jpg

19656_3f7ce24398c55333c9186482c3c03439.jpg
19656_3f7ce24398c55333c9186482c3c03439.jpg

3 Risposte

  • Re: Hibernate problema su relazioni oneToMany e ManyToOne

    Il crossposting qui non è consentito/tollerato ...

    Non solo su html.it ma anche su stackoverflow.com ... è una pesca a strascico ...
  • Re: Hibernate problema su relazioni oneToMany e ManyToOne

    Mi scuso oregon per quest'attività impropria,
    ma mi trovo in grossa difficoltà con questo problema.
    Spero capirai un utilizzo improprio della richiesta di assistenza.
    Non è mia pratica farlo e se ho fatto questa impropria manovra lo debbo solo a un'urgenza impellente.
    Scusa ancora.
    ciao
    ****
  • Re: Hibernate problema su relazioni oneToMany e ManyToOne

    X misonsan:
    1) niente cross posting, qui devo chiudere la discussione
    2) ti consiglio di non lasciare la mail in giro, io l'ho asteriscata, in altri forum non lo fanno.
Devi accedere o registrarti per scrivere nel forum
3 risposte