How to map a MySQL char(n) column to an instance variable using a JPA/Hibernate annotation?
20,241
Solution 1
Try this:
@Column(name="language",columnDefinition="char(7)")
see if that works.
Solution 2
For me*Grails it's works: sqlType: "char" on mapping
Comments
-
Jean-Pierre Schnyder over 3 years
I encounter a JPA/Hibernate mapping problem on a column "language" in a MySQL table whose type is char(7). In my entity, the code generated for the field is:
private String language;
this causes the following exception at runtime:
... 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
Thanks in advance !
JP
-
Jean-Pierre Schnyder almost 13 yearsThanks, yes, this works: @Column(name="language",columnDefinition="char")
-
Jean-Pierre Schnyder almost 13 yearsSimilarly, @Column(name="params",columnDefinition="text") for db column "params" of type text and @Column(name = "published", columnDefinition = "tinyint") for db column "published" of type tinyint Joomla! developers are familiar with.