У меня есть ошибка , когда я пытаюсь отправить GET-запрос в мое Spring Boot Application, и я не знаю, что я пропустил!
У меня есть база данных и я создал JPA Entities и связи в Eclipse с STS (Spring Tool Suite), установленным для моего Spring Boot Project, соответственно.
Созданные объекты являются:
Категория.java
package gnammy.entities;
import java.io.Serializable;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
/**
* The persistent class for the categoria database table.
*
*/
@Entity
@Table(name = "categoria")
@NamedQuery(name = "Categoria.findAll", query = "SELECT c FROM Categoria c")
@NamedQuery(name = "Categoria.findByIdRistorante", query = "SELECT DISTINCT c FROM Categoria c INNER JOIN c.portate p INNER JOIN p.ristoranti r WHERE r.idRistorante = :idRistorante")
public class Categoria implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "idCategoria", nullable = false, unique = true, insertable = false, updatable = false)
private int idCategoria;
private String descrizione;
// bi-directional many-to-one association to Portata
@OneToMany(mappedBy = "categoria")
private List<Portata> portate;
public Categoria() {
}
public Categoria(String descrizione) {
super();
this.descrizione = descrizione;
}
public Categoria(int idCategoria, String descrizione) {
super();
this.idCategoria = idCategoria;
this.descrizione = descrizione;
}
public int getIdCategoria() {
return idCategoria;
}
public void setIdCategoria(int idCategoria) {
this.idCategoria = idCategoria;
}
public String getDescrizione() {
return this.descrizione;
}
public void setDescrizione(String descrizione) {
this.descrizione = descrizione;
}
public List<Portata> getPortate() {
return this.portate;
}
public void setPortate(List<Portata> portatas) {
this.portate = portatas;
}
public Portata addPortata(Portata portata) {
getPortate().add(portata);
portata.setCategoria(this);
return portata;
}
public Portata removePortata(Portata portata) {
getPortate().remove(portata);
portata.setCategoria(null);
return portata;
}
}
Ordine.java
package gnammy.entities;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
* The persistent class for the ordine database table.
*
*/
@Entity
@Table(name = "ordine")
@NamedQuery(name = "Ordine.findAll", query = "SELECT o FROM Ordine o")
public class Ordine implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "idOrdine", nullable = false, unique = true, insertable = false, updatable = false)
private int idOrdine;
@Column(name = "idRistorante", nullable = false, unique = true, insertable = false, updatable = false)
private int idRistorante;
private String indirizzoConsegna;
@Temporal(TemporalType.TIMESTAMP)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date orarioConsegna;
private String tipoPagamento;
private String note;
@Temporal(TemporalType.TIMESTAMP)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date dataOrdine;
private float totale;
private String cartaDiCredito;
// bi-directional many-to-many association to Portata
@ManyToMany
@JoinTable(name = "ordine_portata", joinColumns = {
@JoinColumn(name = "IdOrdine", referencedColumnName = "IdOrdine") }, inverseJoinColumns = {
@JoinColumn(name = "IdPortata", referencedColumnName = "IdPortata") })
private List<Portata> portate;
// bi-directional many-to-one association to Ristorante
@ManyToOne
@JoinColumn(name = "IdRistorante", referencedColumnName = "IdRistorante")
private Ristorante ristorante;
public Ordine() {
}
public Ordine(int idRistorante, String indirizzoConsegna, Date orarioConsegna, String tipoPagamento, String note,
Date dataOrdine, float totale, String cartaDiCredito) {
super();
this.idRistorante = idRistorante;
this.indirizzoConsegna = indirizzoConsegna;
this.orarioConsegna = orarioConsegna;
this.tipoPagamento = tipoPagamento;
this.note = note;
this.dataOrdine = dataOrdine;
this.totale = totale;
this.cartaDiCredito = cartaDiCredito;
}
public Ordine(int idOrdine, int idRistorante, String indirizzoConsegna, Date orarioConsegna, String tipoPagamento,
String note, Date dataOrdine, float totale, String cartaDiCredito) {
super();
this.idOrdine = idOrdine;
this.idRistorante = idRistorante;
this.indirizzoConsegna = indirizzoConsegna;
this.orarioConsegna = orarioConsegna;
this.tipoPagamento = tipoPagamento;
this.note = note;
this.dataOrdine = dataOrdine;
this.totale = totale;
this.cartaDiCredito = cartaDiCredito;
}
public int getIdOrdine() {
return idOrdine;
}
public void setIdOrdine(int idOrdine) {
this.idOrdine = idOrdine;
}
public int getIdRistorante() {
return idRistorante;
}
public void setIdRistorante(int idRistorante) {
this.idRistorante = idRistorante;
}
public String getCartaDiCredito() {
return this.cartaDiCredito;
}
public void setCartaDiCredito(String cartaDiCredito) {
this.cartaDiCredito = cartaDiCredito;
}
public Date getDataOrdine() {
return this.dataOrdine;
}
public void setDataOrdine(Date dataOrdine) {
this.dataOrdine = dataOrdine;
}
public String getIndirizzoConsegna() {
return this.indirizzoConsegna;
}
public void setIndirizzoConsegna(String indirizzoConsegna) {
this.indirizzoConsegna = indirizzoConsegna;
}
public String getNote() {
return this.note;
}
public void setNote(String note) {
this.note = note;
}
public Date getOrarioConsegna() {
return this.orarioConsegna;
}
public void setOrarioConsegna(Date orarioConsegna) {
this.orarioConsegna = orarioConsegna;
}
public String getTipoPagamento() {
return this.tipoPagamento;
}
public void setTipoPagamento(String tipoPagamento) {
this.tipoPagamento = tipoPagamento;
}
public float getTotale() {
return this.totale;
}
public void setTotale(float totale) {
this.totale = totale;
}
public List<Portata> getPortate() {
return this.portate;
}
public void setPortate(List<Portata> portate) {
this.portate = portate;
}
public Ristorante getRistorante() {
return this.ristorante;
}
public void setRistorante(Ristorante ristorante) {
this.ristorante = ristorante;
}
}
Portata.java
package gnammy.entities;
import java.io.Serializable;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
/**
* The persistent class for the portata database table.
*
*/
@Entity
@Table(name = "portata")
@NamedQuery(name = "Portata.findAll", query = "SELECT p FROM Portata p")
@NamedQuery(name = "Portata.findByIdRistorante", query = "SELECT DISTINCT p FROM Portata p INNER JOIN p.ristoranti r WHERE r.idRistorante = :idRistorante")
public class Portata implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "idPortata", nullable = false, unique = true, insertable = false, updatable = false)
private int idPortata;
@Column(name = "idCategoria", nullable = false, unique = true, insertable = false, updatable = false)
private int idCategoria;
private String nome;
private String descrizione;
private float prezzo;
// bi-directional many-to-many association to Ordine
@ManyToMany(mappedBy = "portate")
private List<Ordine> ordini;
// bi-directional many-to-one association to Categoria
@ManyToOne
@JoinColumn(name = "IdCategoria", referencedColumnName = "IdCategoria")
private Categoria categoria;
// bi-directional many-to-many association to Ristorante
@ManyToMany(mappedBy = "portate")
private List<Ristorante> ristoranti;
public Portata() {
}
public Portata(int idCategoria, String nome, String descrizione, float prezzo) {
super();
this.idCategoria = idCategoria;
this.nome = nome;
this.descrizione = descrizione;
this.prezzo = prezzo;
}
public Portata(int idPortata, int idCategoria, String nome, String descrizione, float prezzo) {
super();
this.idPortata = idPortata;
this.idCategoria = idCategoria;
this.nome = nome;
this.descrizione = descrizione;
this.prezzo = prezzo;
}
public int getIdPortata() {
return idPortata;
}
public void setIdPortata(int idPortata) {
this.idPortata = idPortata;
}
public int getIdCategoria() {
return idCategoria;
}
public void setIdCategoria(int idCategoria) {
this.idCategoria = idCategoria;
}
public String getDescrizione() {
return this.descrizione;
}
public void setDescrizione(String descrizione) {
this.descrizione = descrizione;
}
public String getNome() {
return this.nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public float getPrezzo() {
return this.prezzo;
}
public void setPrezzo(float prezzo) {
this.prezzo = prezzo;
}
public List<Ordine> getOrdini() {
return this.ordini;
}
public void setOrdini(List<Ordine> ordini) {
this.ordini = ordini;
}
public Categoria getCategoria() {
return this.categoria;
}
public void setCategoria(Categoria categoria) {
this.categoria = categoria;
}
public List<Ristorante> getRistoranti() {
return this.ristoranti;
}
public void setRistoranti(List<Ristorante> ristoranti) {
this.ristoranti = ristoranti;
}
}
Ristorante.java
package gnammy.entities;
import java.io.Serializable;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
/**
* The persistent class for the ristorante database table.
*
*/
@Entity
@Table(name = "ristorante")
@NamedQuery(name = "Ristorante.findAll", query = "SELECT r FROM Ristorante r")
@NamedQuery(name = "Ristorante.findByIdTipoCucina", query = "SELECT DISTINCT r FROM Ristorante r INNER JOIN r.tipiCucina tc WHERE tc.idTipoCucina = :idTipoCucina")
public class Ristorante implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "idRistorante", nullable = false, unique = true, insertable = false, updatable = false)
private int idRistorante;
private String nome;
private String indirizzo;
private String numeroTelefonico;
private String orario;
private float costoDiConsegna;
private float ordineMinimo;
private String linkSito;
// bi-directional many-to-one association to Ordine
@OneToMany(mappedBy = "ristorante")
private List<Ordine> ordini;
// bi-directional many-to-many association to Portata
@ManyToMany
@JoinTable(name = "ristorante_portata", joinColumns = {
@JoinColumn(name = "IdRistorante", referencedColumnName = "IdRistorante") }, inverseJoinColumns = {
@JoinColumn(name = "IdPortata", referencedColumnName = "IdPortata") })
private List<Portata> portate;
// bi-directional many-to-many association to TipoCucina
@ManyToMany
@JoinTable(name = "ristorante_tipo_cucina", joinColumns = {
@JoinColumn(name = "IdRistorante", referencedColumnName = "IdRistorante") }, inverseJoinColumns = {
@JoinColumn(name = "IdTipoCucina", referencedColumnName = "IdTipoCucina") })
private List<TipoCucina> tipiCucina;
public Ristorante() {
}
public Ristorante(String nome, String indirizzo, String numeroTelefonico, String orario, float costoDiConsegna,
float ordineMinimo, String linkSito) {
super();
this.nome = nome;
this.indirizzo = indirizzo;
this.numeroTelefonico = numeroTelefonico;
this.orario = orario;
this.costoDiConsegna = costoDiConsegna;
this.ordineMinimo = ordineMinimo;
this.linkSito = linkSito;
}
public Ristorante(int idRistorante, String nome, String indirizzo, String numeroTelefonico, String orario,
float costoDiConsegna, float ordineMinimo, String linkSito) {
super();
this.idRistorante = idRistorante;
this.nome = nome;
this.indirizzo = indirizzo;
this.numeroTelefonico = numeroTelefonico;
this.orario = orario;
this.costoDiConsegna = costoDiConsegna;
this.ordineMinimo = ordineMinimo;
this.linkSito = linkSito;
}
public int getIdRistorante() {
return idRistorante;
}
public void setIdRistorante(int idRistorante) {
this.idRistorante = idRistorante;
}
public float getCostoDiConsegna() {
return this.costoDiConsegna;
}
public void setCostoDiConsegna(float costoDiConsegna) {
this.costoDiConsegna = costoDiConsegna;
}
public String getIndirizzo() {
return this.indirizzo;
}
public void setIndirizzo(String indirizzo) {
this.indirizzo = indirizzo;
}
public String getLinkSito() {
return this.linkSito;
}
public void setLinkSito(String linkSito) {
this.linkSito = linkSito;
}
public String getNome() {
return this.nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getNumeroTelefonico() {
return this.numeroTelefonico;
}
public void setNumeroTelefonico(String numeroTelefonico) {
this.numeroTelefonico = numeroTelefonico;
}
public String getOrario() {
return this.orario;
}
public void setOrario(String orario) {
this.orario = orario;
}
public float getOrdineMinimo() {
return this.ordineMinimo;
}
public void setOrdineMinimo(float ordineMinimo) {
this.ordineMinimo = ordineMinimo;
}
public List<Ordine> getOrdini() {
return this.ordini;
}
public void setOrdini(List<Ordine> ordini) {
this.ordini = ordini;
}
public Ordine addOrdine(Ordine ordine) {
getOrdini().add(ordine);
ordine.setRistorante(this);
return ordine;
}
public Ordine removeOrdine(Ordine ordine) {
getOrdini().remove(ordine);
ordine.setRistorante(null);
return ordine;
}
public List<Portata> getPortate() {
return this.portate;
}
public void setPortate(List<Portata> portate) {
this.portate = portate;
}
public List<TipoCucina> getTipiCucina() {
return this.tipiCucina;
}
public void setTipiCucina(List<TipoCucina> tipiCucina) {
this.tipiCucina = tipiCucina;
}
}
TipoCucina.java
package gnammy.entities;
import java.io.Serializable;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
/**
* The persistent class for the tipo_cucina database table.
*
*/
@Entity
@Table(name = "tipo_cucina")
@NamedQuery(name = "TipoCucina.findAll", query = "SELECT t FROM TipoCucina t")
public class TipoCucina implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "idTipoCucina", nullable = false, unique = true, insertable = false, updatable = false)
private int idTipoCucina;
private String descrizione;
private String immagine;
// bi-directional many-to-many association to Ristorante
@ManyToMany(mappedBy = "tipiCucina")
private List<Ristorante> ristoranti;
public TipoCucina() {
}
public TipoCucina(String descrizione, String immagine) {
super();
this.descrizione = descrizione;
this.immagine = immagine;
}
public TipoCucina(int idTipoCucina, String descrizione, String immagine) {
super();
this.idTipoCucina = idTipoCucina;
this.descrizione = descrizione;
this.immagine = immagine;
}
public int getIdTipoCucina() {
return idTipoCucina;
}
public void setIdTipoCucina(int idTipoCucina) {
this.idTipoCucina = idTipoCucina;
}
public String getDescrizione() {
return this.descrizione;
}
public void setDescrizione(String descrizione) {
this.descrizione = descrizione;
}
public String getImmagine() {
return this.immagine;
}
public void setImmagine(String immagine) {
this.immagine = immagine;
}
public List<Ristorante> getRistorantes() {
return this.ristoranti;
}
public void setRistorantes(List<Ristorante> ristorantes) {
this.ristoranti = ristorantes;
}
}
Что я пропустил ???