我得到这个错误Unknown column 'd1_0.id_ruolo' in 'field list'当我试图从我的控制器调用一个方法,返回我的员工列表,不幸的是我还没有弄清楚。我不明白为什么它搜索一个字段与此名称,因为我还没有设置任何名称这样。我对关系Map的正确设置有疑问,但是当我通过jpa工具自动生成我的实体时,这会很奇怪。我希望你能帮助我提前感谢
这是我的table:
CREATE TABLE `dipendente` (
`id` INT(10) NOT NULL AUTO_INCREMENT,
`nome` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_0900_ai_ci',
`cognome` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_0900_ai_ci',
`idRuolo` INT(10) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE,
INDEX `FK_idRuolo` (`idRuolo`) USING BTREE,
CONSTRAINT `FK_idRuolo` FOREIGN KEY (`idRuolo`) REFERENCES `ruolo` (`id`) ON UPDATE NO ACTION ON DELETE NO ACTION
)
CREATE TABLE `ruolo` (
`id` INT(10) NOT NULL AUTO_INCREMENT,
`ruolo` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_0900_ai_ci',
`idDipendente` INT(10) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE,
INDEX `idDipendente` (`idDipendente`) USING BTREE,
CONSTRAINT `ruolo_ibfk_1` FOREIGN KEY (`idDipendente`) REFERENCES `dipendente` (`id`) ON UPDATE NO ACTION ON DELETE NO ACTION
)
这是我的实体:
package com.negozio.model;
import java.io.Serializable;
import java.util.List;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.Lob;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.NamedQuery;
import jakarta.persistence.OneToMany;
/**
* The persistent class for the dipendente database table.
*
*/
@Entity
@NamedQuery(name="Dipendente.findAll", query="SELECT d FROM Dipendente d")
public class Dipendente implements Serializable {
private static final long serialVersionUID = 1L;
@Id
private int id;
@Lob
private String cognome;
@Lob
private String nome;
//bi-directional many-to-one association to Ruolo
@ManyToOne
@JoinColumn(name="idRuolo")
private Ruolo ruolo;
//bi-directional many-to-one association to Ruolo
@OneToMany(mappedBy="dipendente")
private List<Ruolo> ruolos;
public Dipendente() {
}
public int getId() {
return this.id;
}
public void setId(int id) {
this.id = id;
}
public String getCognome() {
return this.cognome;
}
public void setCognome(String cognome) {
this.cognome = cognome;
}
public String getNome() {
return this.nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public Ruolo getRuolo() {
return this.ruolo;
}
public void setRuolo(Ruolo ruolo) {
this.ruolo = ruolo;
}
public List<Ruolo> getRuolos() {
return this.ruolos;
}
public void setRuolos(List<Ruolo> ruolos) {
this.ruolos = ruolos;
}
public Ruolo addRuolo(Ruolo ruolo) {
getRuolos().add(ruolo);
ruolo.setDipendente(this);
return ruolo;
}
public Ruolo removeRuolo(Ruolo ruolo) {
getRuolos().remove(ruolo);
ruolo.setDipendente(null);
return ruolo;
}
}
package com.negozio.model;
import java.io.Serializable;
import java.util.List;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.Lob;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.NamedQuery;
import jakarta.persistence.OneToMany;
/**
* The persistent class for the ruolo database table.
*
*/
@Entity
@NamedQuery(name="Ruolo.findAll", query="SELECT r FROM Ruolo r")
public class Ruolo implements Serializable {
private static final long serialVersionUID = 1L;
@Id
private int id;
@Lob
private String ruolo;
//bi-directional many-to-one association to Dipendente
@OneToMany(mappedBy="ruolo")
private List<Dipendente> dipendentes;
//bi-directional many-to-one association to Dipendente
@ManyToOne
@JoinColumn(name="idDipendente")
private Dipendente dipendente;
public Ruolo() {
}
public int getId() {
return this.id;
}
public void setId(int id) {
this.id = id;
}
public String getRuolo() {
return this.ruolo;
}
public void setRuolo(String ruolo) {
this.ruolo = ruolo;
}
public List<Dipendente> getDipendentes() {
return this.dipendentes;
}
public void setDipendentes(List<Dipendente> dipendentes) {
this.dipendentes = dipendentes;
}
public Dipendente addDipendente(Dipendente dipendente) {
getDipendentes().add(dipendente);
dipendente.setRuolo(this);
return dipendente;
}
public Dipendente removeDipendente(Dipendente dipendente) {
getDipendentes().remove(dipendente);
dipendente.setRuolo(null);
return dipendente;
}
public Dipendente getDipendente() {
return this.dipendente;
}
public void setDipendente(Dipendente dipendente) {
this.dipendente = dipendente;
}
}
1条答案
按热度按时间6ljaweal1#
默认情况下,
camelCase
中的列名将转换为snake_case
。您应该更改field naming strategy,使用此配置应该可以工作然而,这适用于所有实体,如果命名约定是一致的,这应该不是问题。