【发布时间】:2019-06-20 01:31:59
【问题描述】:
我正在尝试开发一个简单的 CRUD 应用程序,它以 JSON 格式接收数据,对其进行处理,并将其放入 PostgreSQL 表中。表中的字段之一,性别,由枚举表示。
这里我尝试使用 Postman 添加条目:
{
"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 Internal Server Error 和
"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."
【问题讨论】:
-
这已经是answered。此外,您还应该发布员工表的数据库模型。
-
我看到了这个问题,答案中指出的文章在类似的情况下帮助了我。感谢您的回复。
标签: java postgresql jdbc enums postman