ormai mi aspetto di tutto a dire il vero l'entity la davo per buona ..
poiche lo generata automaticamente da netbeans prendendo il db da mysql con la conessione le ho data per buone ......
cmq il codice dei entity e questo:
piatto:
codice:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package model;
import java.io.Serializable;
import java.util.Collection;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToMany;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
/**
*
* @author orphen
*/
@Entity
@Table(name = "piatto", catalog = "GestioneRistorante", schema = "")
@XmlRootElement
@NamedQueries({
@NamedQuery(name = "Piatto.findAll", query = "SELECT p FROM Piatto p"),
@NamedQuery(name = "Piatto.findByOrdinabilecod", query = "SELECT p FROM Piatto p WHERE p.ordinabilecod = :ordinabilecod"),
@NamedQuery(name = "Piatto.findByDescrizione", query = "SELECT p FROM Piatto p WHERE p.descrizione = :descrizione"),
@NamedQuery(name = "Piatto.findByNome", query = "SELECT p FROM Piatto p WHERE p.nome = :nome"),
@NamedQuery(name = "Piatto.findByPrezzo", query = "SELECT p FROM Piatto p WHERE p.prezzo = :prezzo"),
@NamedQuery(name = "Piatto.findByImage", query = "SELECT p FROM Piatto p WHERE p.image = :image")})
public class Piatto implements Serializable {
@Size(max = 255)
@Column(name = "image", length = 255)
private String image;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "piatto")
private Collection<MenuPiatti> menuPiattiCollection;
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@NotNull
@Column(name = "ordinabilecod", nullable = false)
private Integer ordinabilecod;
@Size(max = 255)
@Column(name = "descrizione", length = 255)
private String descrizione;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 255)
@Column(name = "nome", nullable = false, length = 255)
private String nome;
@Basic(optional = false)
@NotNull
@Column(name = "prezzo", nullable = false)
private double prezzo;
@ManyToMany(mappedBy = "piattoCollection")
private Collection<Menu> menuCollection;
@JoinColumn(name = "ordinabilecod", referencedColumnName = "cod", nullable = false, insertable = false, updatable = false)
@OneToOne(optional = false)
private Ordinabile ordinabile;
public Piatto() {
}
public Piatto(Integer ordinabilecod) {
this.ordinabilecod = ordinabilecod;
}
public Piatto(Integer ordinabilecod, String nome, double prezzo) {
this.ordinabilecod = ordinabilecod;
this.nome = nome;
this.prezzo = prezzo;
}
public Integer getOrdinabilecod() {
return ordinabilecod;
}
public void setOrdinabilecod(Integer ordinabilecod) {
this.ordinabilecod = ordinabilecod;
}
public String getDescrizione() {
return descrizione;
}
public void setDescrizione(String descrizione) {
this.descrizione = descrizione;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public double getPrezzo() {
return prezzo;
}
public void setPrezzo(double prezzo) {
this.prezzo = prezzo;
}
@XmlTransient
public Collection<Menu> getMenuCollection() {
return menuCollection;
}
public void setMenuCollection(Collection<Menu> menuCollection) {
this.menuCollection = menuCollection;
}
public Ordinabile getOrdinabile() {
return ordinabile;
}
public void setOrdinabile(Ordinabile ordinabile) {
this.ordinabile = ordinabile;
}
@Override
public int hashCode() {
int hash = 0;
hash += (ordinabilecod != null ? ordinabilecod.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof Piatto)) {
return false;
}
Piatto other = (Piatto) object;
if ((this.ordinabilecod == null && other.ordinabilecod != null) || (this.ordinabilecod != null && !this.ordinabilecod.equals(other.ordinabilecod))) {
return false;
}
return true;
}
@Override
public String toString() {
return "model.Piatto[ ordinabilecod=" + ordinabilecod + " ]";
}
@XmlTransient
public Collection<MenuPiatti> getMenuPiattiCollection() {
return menuPiattiCollection;
}
public void setMenuPiattiCollection(Collection<MenuPiatti> menuPiattiCollection) {
this.menuPiattiCollection = menuPiattiCollection;
}
public String getImage() {
return image;
}
public void setImage(String image) {
this.image = image;
}
}
mentre dio ordinabile è:
codice:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package model;
import java.io.Serializable;
import java.util.Collection;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
/**
*
* @author orphen
*/
@Entity
@Table(name = "ordinabile", catalog = "GestioneRistorante", schema = "")
@XmlRootElement
@NamedQueries({
@NamedQuery(name = "Ordinabile.findAll", query = "SELECT o FROM Ordinabile o"),
@NamedQuery(name = "Ordinabile.LastId", query = "SELECT o FROM Ordinabile o ORDER BY o.cod DESC "),
@NamedQuery(name = "Ordinabile.findByCod", query = "SELECT o FROM Ordinabile o WHERE o.cod = :cod")})
public class Ordinabile implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@NotNull
@Column(name = "cod", nullable = false)
private Integer cod;
@OneToOne(cascade = CascadeType.ALL, mappedBy = "ordinabile")
private Menu menu;
@OneToOne(cascade = CascadeType.ALL, mappedBy = "ordinabile")
private Piatto piatto;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "ordinabilecod")
private Collection<Ordine> ordineCollection;
public Ordinabile() {
}
public Ordinabile(Integer cod) {
this.cod = cod;
}
public Integer getCod() {
return cod;
}
public void setCod(Integer cod) {
this.cod = cod;
}
public Menu getMenu() {
return menu;
}
public void setMenu(Menu menu) {
this.menu = menu;
}
public Piatto getPiatto() {
return piatto;
}
public void setPiatto(Piatto piatto) {
this.piatto = piatto;
}
@XmlTransient
public Collection<Ordine> getOrdineCollection() {
return ordineCollection;
}
public void setOrdineCollection(Collection<Ordine> ordineCollection) {
this.ordineCollection = ordineCollection;
}
@Override
public int hashCode() {
int hash = 0;
hash += (cod != null ? cod.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof Ordinabile)) {
return false;
}
Ordinabile other = (Ordinabile) object;
if ((this.cod == null && other.cod != null) || (this.cod != null && !this.cod.equals(other.cod))) {
return false;
}
return true;
}
@Override
public String toString() {
return "model.Ordinabile[ cod=" + cod + " ]";
}
}
inserisco qua anche il codice sql delle 2 raltive tabelle:
ps le ho esportate con phpmyadmin.
ordinabile:
codice:
CREATE TABLE IF NOT EXISTS `ordinabile` (
`cod` int(10) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`cod`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
piatto
codice:
CREATE TABLE IF NOT EXISTS `piatto` (
`ordinabilecod` int(10) NOT NULL,
`descrizione` text,
`nome` varchar(255) NOT NULL,
`prezzo` double NOT NULL,
`image` varchar(255) DEFAULT NULL,
PRIMARY KEY (`ordinabilecod`),
KEY `FKpiatto864689` (`ordinabilecod`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
ALTER TABLE `piatto`
ADD CONSTRAINT `FKpiatto864689` FOREIGN KEY (`ordinabilecod`) REFERENCES `ordinabile` (`cod`);
ora guardado il db mi viene un dubbio. Forse la foreign key va al contrario cioe su ordinabile