dub*_*nic 5 java postgresql enums jdbc postman
我正在尝试开发一个简单的 CRUD 应用程序,它接收 JSON 格式的数据,对其进行处理,并将其放入 PostgreSQL 表中。表中的字段之一性别由枚举表示。
在这里,我尝试使用 Postman 添加一个条目:
{
"employeeId": 1,
"firstName": "Ada",
"lastName": "Lovelace",
"departmentId": 3,
"jobTitle": "Senior",
"gender": "FEMALE",
"dateOfBirth": "1815-12-10"
}
Run Code Online (Sandbox Code Playgroud)
这是 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());
}
Run Code Online (Sandbox Code Playgroud)
结果,我得到: 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."
Run Code Online (Sandbox Code Playgroud)
性别字段是什么 SQL 类型?
除了传入枚举,您还可以传入等效的字符串,例如employee.getGender().name()或employee.getGender().toString()
| 归档时间: |
|
| 查看次数: |
9498 次 |
| 最近记录: |