Cómo corregir "No se puede inferir el tipo SQL para el uso de una instancia de enumeración" error al insertar valor de enumeración?

Vladislav:

Estoy tratando de desarrollar una sencilla aplicación CRUD-, que recibe datos en el formato JSON, lo procesa y lo pone en una tabla de PostgreSQL. Uno de los campos en la tabla, el género, está representado por una enumeración.

Aquí estoy tratando de añadir una entrada que utiliza el cartero:

{
    "employeeId": 1,
    "firstName": "Ada",
    "lastName": "Lovelace",
    "departmentId": 3,
    "jobTitle": "Senior",
    "gender": "FEMALE",
    "dateOfBirth": "1815-12-10"
}

Aquí está el código DAO-capa:

@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());
}

Como resultado, me sale: 500 Error interno del servidor y

"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."

Por favor, ayúdame, I Google este problema durante varios días y no puedo encontrar una solución

Nazeem:

¿Qué tipo SQL es el campo de género?

En lugar de pasar en la enumeración, también se puede pasar en la cadena equivalente, por ejemplo employee.getGender().name(), oemployee.getGender().toString()

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=211467&siteId=1
Recomendado
Clasificación