miércoles, 15 de abril de 2020

Error de boolean con hibernate y java

Estaba trabajando en un programa con java OpenJDK 8 e hibernate 5.4.7 y linux, el programa me funcionaba bien pero le agregué otra clase con un campo boolean y cuando corrí el programa resulta que ya no listaba, al ver los errores me salía los siguientes errores.

Exception in thread "AWT-EventQueue-0" javax.persistence.PersistenceException: [PersistenceUnit: prueba] Unable to build Hibernate SessionFactory

Caused by: org.hibernate.tool.schema.spi.SchemaManagementException: Schema-validation: wrong column type encountered in column [contactado] in table [prospectos]; found [tinyint (Types#TINYINT)], but expecting [bit (Types#BOOLEAN)]

En la base de datos el campo boolean lo había definido con un TINYINT y el atributo de la clase en java un boolean y eso creó el conflicto

Así que lo hay que hacer es agregar una definición de la comuna poniéndolo al atributo boolean de la clase en java como sigue:

@Column(name="contactado", columnDefinition = "TINYINT(1)")
    private boolean contactado;