Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用JPA/Hibernate注释将MySQL char(n)列映射到实例变量?_Mysql_Hibernate_Jpa 2.0 - Fatal编程技术网

如何使用JPA/Hibernate注释将MySQL char(n)列映射到实例变量?

如何使用JPA/Hibernate注释将MySQL char(n)列映射到实例变量?,mysql,hibernate,jpa-2.0,Mysql,Hibernate,Jpa 2.0,我在一个类型为char(7)的MySQL表中的“language”列上遇到了JPA/Hibernate映射问题。在我的实体中,为字段生成的代码是: private String language; 这会在运行时导致以下异常: ... 43 more Caused by: javax.persistence.PersistenceException: [PersistenceUnit: prosvetaPersistenceUnit] Unable to build En

我在一个类型为char(7)的MySQL表中的“language”列上遇到了JPA/Hibernate映射问题。在我的实体中,为字段生成的代码是:

    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
。。。43多
原因:javax.persistence.PersistenceException:[PersistenceUnit:ProsvetPapersistenceUnit]无法生成EntityManagerFactory
位于org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:911)
位于org.hibernate.ejb.HibernatePersistence.createContainerEntityManager工厂(HibernatePersistence.java:74)
位于org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:225)
位于org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.AfterPropertieSet(AbstractEntityManagerFactoryBean.java:308)
位于org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1477)
位于org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417)
... 58多
原因:org.hibernate.HibernateException:列语言的joo16_dev.jos_类别中的列类型错误。找到:char,应为:varchar(255)
位于org.hibernate.mapping.Table.validateColumns(Table.java:283)
位于org.hibernate.cfg.Configuration.validateSchema(Configuration.java:1313)
位于org.hibernate.tool.hbm2ddl.SchemaValidator.validate(SchemaValidator.java:139)
位于org.hibernate.impl.SessionFactoryImpl.(SessionFactoryImpl.java:378)
位于org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1842)
位于org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:902)
... 63多
提前谢谢

JP

试试这个:

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

看看这是否有效。

对于我*Grails来说,这是有效的:sqlType:“char”关于映射

谢谢,是的,这是有效的:@Column(name=“language”,columnDefinition=“char”)类似地,@Column(name=“params”,columnDefinition=“text”)用于文本类型的db列“params”,而@Column(name=“published”,columnDefinition=“tinyint”)用于db列tinyint Joomla类型的“published”!开发人员熟悉。