2011-06-01 32 views
15

我在類型爲char(7)的MySQL表中的列「語言」上遇到JPA/Hibernate映射問題。在我的實體,爲現場生成的代碼是:如何使用JPA/Hibernate註釋將MySQL char(n)列映射到實例變量?

private String language; 

這將導致以下異常在運行時:提前

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

謝謝!

JP

回答

24

試試這個:

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

看看是否能工程。

+1

謝謝你,是的,這個工程: \t @Column(name = 「語言」,columnDefinition = 「字符」) – 2011-06-01 21:29:04

+1

同樣,@Column(name =「params」,columnDefinition =「text」)用於db列「發佈」類型tinyint的db列「params」和@Column(name =「published」,columnDefinition =「tinyint」)的Joomla!開發人員都很熟悉。 – 2011-06-02 17:48:40

0

對我來說,* Grails的它的作品:則sqlType:上映射 「字符」

相關問題