Я пытаюсь подключить свое Java-приложение к существующей базе данных.
База данных содержит Personen, у которого есть 1 Graad и Locatie. Graad.graadNumeriek является первичным ключом для Graad, а Locatie имеет автоматически сгенерированный первичный ключ.
Моя цель - вернуть всех людей, включая их Граад и Местонахождение.
Однако, когда я запускаю свою ошибку, я получаю следующую ошибку:
Internal Exception: com.microsoft.sqlserver.jdbc.SQLServerException: Invalid column name 'GRAAD_GraadNummeriek'.
Error Code: 207
Call: SELECT PersoonId, Achternaam, BackupTelefoon, Email, GeboorteDatum, Geslacht, RijksregisterNummer, Score, TelefoonNr, VerwachteDagen, Voornaam, GRAAD_GraadNummeriek, LOCATIE_LocatieId FROM Persoon
Query: ReadAllQuery(name="Persoon.getAllePersonen" referenceClass=Persoon sql="SELECT PersoonId, Achternaam, BackupTelefoon, Email, GeboorteDatum, Geslacht, RijksregisterNummer, Score, TelefoonNr, VerwachteDagen, Voornaam, GRAAD_GraadNummeriek, LOCATIE_LocatieId FROM Persoon")
Полагаю, это как-то связано с тем, что SQL ищет Graad_graadNumeriek в Persoon вместо использования ключей.
Persoon
@Entity
@Table(name = "Persoon")
@NamedQueries({
@NamedQuery(name = "Persoon.getAllePersonen",
query = "SELECT p FROM Persoon p"),
@NamedQuery(name = "Persoon.findByName",
query = "SELECT p FROM Persoon p WHERE p.achternaam = :persoonNaam OR p.voornaam = :persoonNaam")
})
public class Persoon implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "PersoonId")
int id;
@Column(name = "Voornaam")
private String voornaam;
@Column(name = "Achternaam")
private String achternaam;
@Transient
private SimpleStringProperty voornaamProperty = new SimpleStringProperty();
@Transient
private SimpleStringProperty achternaamProperty = new SimpleStringProperty();
@Column(name = "GeboorteDatum")
private String geboorteDatum;
@Column(name = "Geslacht")
private char geslacht;
@Column(name = "Email")
private String email;
@Transient
private String emailOuders;
@Column(name = "RijksregisterNummer")
private String rijksregisternummer;
@OneToOne
private Locatie locatie;
@Column(name = "TelefoonNr")
private String telefoonNummer;
@Column(name = "BackupTelefoon")
private String backupTelefoon;
@ManyToOne
private Graad graad;
@Transient
private SimpleStringProperty graadString = new SimpleStringProperty();
@Column(name = "VerwachteDagen")
private Integer verwachteDagen;
@Transient
private SimpleStringProperty rol = new SimpleStringProperty();
@Column(name = "Score")
private int score;
public Persoon() {
}
Graad
@Entity
public class Graad implements Serializable {
@Id
@Column(name = "GraadNummeriek")
protected String graadNumeriek;
@Column(name = "Niveau")
protected String niveau;
@Column(name = "FotoURL")
protected String fotoUrl;
public Graad() {
}