Saltar al contenido

El valor del parámetro no coincide con el tipo esperado

Presta atención ya que en este post encontrarás la contestación que buscas.

Solución:

Supongo que el problema principal es que está intentando usar un tipo de datos de enumeración en el lado de la base de datos. Esto no se recomienda porque a menudo requiere un tipo de enumeración patentado que puede no ser compatible con la implementación de JPA (por ejemplo, Hibernate). Consulte esta respuesta en una pregunta similar para obtener algunos detalles.

Además, con la anotación

@Enumerated(EnumType.String)

estás diciendo que quieres explícitamente, que el valor se guarda como una cadena en la base de datos Espero que esto falle si el tipo de columna real es alguna enumeración. Tal vez los cambios en el código de Hibernate están tratando de evitar estos problemas al obligarlo a usar cualquiera varchar o entero columnas

Soluciones posibles:

A)

Use una columna varchar con @Enumerated(EnumType.String) o una columna int con @Enumerated

B)

Puede intentar especificar la columna de enumeración a través de la anotación

@Basic(optional = false)
@Column(name = "state", columnDefinition = "enum('UP','DOWN','RETRY')")
@Enumerated(EnumType.String)
private State state;

C)

Puede intentar especificar su clase de enumeración a través de un archivo de mapeo XML de hibernación:


    
        package.name.State
        12
        
     

Ver también:

  • Mapeo de tipos enumerados JPA. Mejor enfoque
  • Enum en Hibernate, que persiste como una enumeración
  • ¿Ventaja de rendimiento de MySQL Enum?

Valoraciones y comentarios

Puedes añadir valor a nuestra información colaborando tu veteranía en las referencias.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *