我正在尝试从数据库中检索idPatient,但我一直收到错误,idPatient是自动增量。但我不知道这是不是造成这个问题的原因。
这是我正在尝试的代码
public List<Patient> getPatientsFromDatabase() {
String sql = "SELECT naam, voornaam, gebit, idPatient from patienten";
try (Connection con = sql2o.open()) {
return con.createQuery(sql)
.throwOnMappingFailure(false)
.executeAndFetch(Patient.class);
}
}
DB:
错误:
编辑 - 患者:
public Patient(String voornaam, String naam, String gebit, int id) {
this.voornaam = voornaam;
this.naam = naam;
this.id = id;
if (null != gebit)switch (gebit) {
case "melkgebit":
g = new Melkgebit();
this.gebit = "melkgebit";
break;
case "volwassengebit":
g = new Volwassengebit();
this.gebit = "volwassengebit";
break;
case "wisselgebit":
this.gebit = "wisselgebit";
break;
default:
break;
}
}
答案 0 :(得分:2)
似乎Patient
没有属性idPatient
。检查
答案 1 :(得分:1)
列和属性之间的映射是按名称自动完成的。当然,这并不总是可行的
在您的情况下,您已将id(java属性)定义为idPatient(数据库表中的相应列)。 最简单的解决方案是在SQL查询中使用别名。
尝试更改您的sql:
SELECT naam, voornaam, gebit, idPatient id from patienten;