我想开发一个简单的CRUD应用程序,即在JSON格式接收数据,处理它,并把它放在一个PostgreSQL表。一个在表中,性别字段,由枚举表示。
在这里,我尝试添加使用邮差的条目:
{
"employeeId": 1,
"firstName": "Ada",
"lastName": "Lovelace",
"departmentId": 3,
"jobTitle": "Senior",
"gender": "FEMALE",
"dateOfBirth": "1815-12-10"
}
下面是DAO-层代码:
@Override
public void addEmployee(Employee employee) {
String sql = "INSERT INTO employees(employee_id, first_name, last_name, department_id, job_title, gender, date_of_birth) VALUES (?, ?, ?, ?, ?, CAST(? AS gender), ?)";
getJdbcTemplate().update(sql, employee.getEmployeeId(), employee.getFirstName(), employee.getLastName(),
employee.getDepartmentId(), employee.getJobTitle(), employee.getGender(), employee.getDateOfBirth());
}
其结果是,我得到:500内部服务器错误和
"PreparedStatementCallback; bad SQL grammar [INSERT INTO employees(employee_id, first_name, last_name, department_id, job_title, gender, date_of_birth) VALUES (?, ?, ?, ?, ?, CAST(? AS gender), ?)]; nested exception is org.postgresql.util.PSQLException: Can't infer the SQL type to use for an instance of com.way.dto.Gender. Use setObject() with an explicit Types value to specify the type to use."
请帮帮我,我谷歌这个问题好几天了,我无法找到一个解决方案
什么SQL类型是性别字段?
在传入枚举代替,你也可以通过在等效字符串的,例如employee.getGender().name()
或employee.getGender().toString()
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句