如何解决将枚举值时“无法推断SQL类型用于枚举实例”的错误?

弗拉季:

我想开发一个简单的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."

请帮帮我,我谷歌这个问题好几天了,我无法找到一个解决方案

Nazeem:

什么SQL类型是性别字段?

在传入枚举代替,你也可以通过在等效字符串的,例如employee.getGender().name()employee.getGender().toString()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何解决错误“提供的类型必须是枚举。参数名称:enumType”

在 Hybris 中本地化枚举类型时如何解决 java.lang.IllegalStateException?

如何解决错误:15:错误:无法推断类型参数的PriorityQueue <>中的OpenJDK 1.7.0_95?

当枚举包含具有相同值的元素时,如何将原始类型值转换为枚举值?

从枚举推断元组类型?

如何解决“预期表达”和“无法推断参数”错误?

我如何解决此错误:无法将“NSURL”类型的值转换为预期的参数类型“URLRequest”

如何从枚举类型获取枚举值?

定义实体实例时无法使用枚举的值0

如何解决错误“承包商无法将上传应用于给定类型”的错误?

当接口具有多个通用参数时,如何解决“无法将[类型]隐式转换为[接口]”错误?

Java中的枚举类型是否将枚举实例“封闭”?

枚举类型可能未实例化错误

Gettin枚举类型可能无法实例化

如何解决“ Newtonsoft.Json.JsonSerializationException无法找到要用于类型的构造函数”的Android错误?

如何解决无法将类型...的值转换为预期的参数类型inout _

如何解决无法将类型“ AuthResult”的值分配给“ FirebaseUser”类型的变量

如何解决“无法将“CATextLayerAlignmentMode”类型的值分配给“String”类型的问题?

试图了解与通用枚举有关的“无法将类型的值转换为期望的参数类型的”错误

无法在Rust的递归枚举中推断泛型函数的类型

如何解决 STS 启动时“无法找到用于堆栈映射生成的 Asm”错误?

Typescript枚举实例类型

如何解决Unity中的“无法从复合读取类型为Vector2的值”错误?

在C#中对枚举进行序列化时,如何解决程序集ID错误?

如何解决“状态错误(活动)E0513无法将类型为“ const wchar_t *”的值分配给类型为“ wchar_t *”的实体”

如何解决无法使用两个查询多次枚举

liquibase无法将类型枚举转换为枚举

无法映射枚举值时,如何配置 MapStruct 以引发异常

如何解决错误:无法将类型“long”隐式转换为“bool”?