2011-06-01 14 views
15

Me encuentro con un problema de mapeo JPA/Hibernate en una columna "lenguaje" en una tabla MySQL cuyo tipo es char (7). En mi entidad, el código generado para el campo es:¿Cómo asignar una columna MySQL char (n) a una variable de instancia utilizando una anotación JPA/Hibernate?

private String language; 

Esto provoca que la siguiente excepción en tiempo de ejecución:

 ... 43 more 
Caused by: javax.persistence.PersistenceException: [PersistenceUnit: prosvetaPersistenceUnit] Unable to build EntityManagerFactory 
    at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:911) 
    at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:74) 
    at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:225) 
    at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:308) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1477) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417) 
    ... 58 more 
Caused by: org.hibernate.HibernateException: Wrong column type in joo16_dev.jos_categories for column language. Found: char, expected: varchar(255) 
    at org.hibernate.mapping.Table.validateColumns(Table.java:283) 
    at org.hibernate.cfg.Configuration.validateSchema(Configuration.java:1313) 
    at org.hibernate.tool.hbm2ddl.SchemaValidator.validate(SchemaValidator.java:139) 
    at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:378) 
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1842) 
    at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:902) 
    ... 63 more 

Gracias de antemano!

JP

Respuesta

24

Prueba esto:

@Column(name="language",columnDefinition="char(7)") 

ver si funciona.

+1

Gracias, sí, esto funciona: \t @Column (name = "lengua", ColumnDefinition = "char") –

+1

Del mismo modo , @Column (name = "params", columnDefinition = "text") para db column "params" de tipo texto y @Column (name = "published", columnDefinition = "tinyint") para db column "published" de tipo tinyint Joomla! los desarrolladores están familiarizados con –

0

Para mí * Grails es obra: SQLTYPE: "char" en la cartografía

Cuestiones relacionadas