2011-01-21 132 views
4

persistence.xml文件无法建立的EntityManagerFactory

<?xml version="1.0" encoding="UTF-8"?> 
<persistence version="1.0" 
xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"> 

<persistence-unit name="xyz" transaction-type="JTA"> 

    <provider>org.hibernate.ejb.HibernatePersistence</provider> 
    <class>com......</class> 
</persistence-unit> 

</persistence> 

的applicationContext.xml

<bean id="transactionManager" 
    class="org.springframework.orm.jpa.JpaTransactionManager"> 
    <property name="entityManagerFactory" ref="entityManagerFactory" /> 
</bean> 

<bean id="dataSource" 
    class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
    <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" /> 
    <property name="url" value="jdbc:oracle:thin:@localhost:1521:XE" /> 
    <property name="username" value="yyy" /> 
    <property name="password" value="yyy" /> 
</bean> 

<bean id="entityManagerFactory" 
    class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> 
    <property name="persistenceUnitName" value="xyz" /> 
    <property name="dataSource" ref="dataSource" /> 
    <property name="jpaVendorAdapter"> 
     <bean 
      class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"> 
      <property name="databasePlatform" value="org.hibernate.dialect.Oracle10gDialect" /> 
      <property name="showSql" value="true" /> 
      <!-- <property name="generateDdl" value="true" /> --> 
     </bean> 
    </property> 
</bean> 

<bean id="theDao" class="com.cin.the.dataaccess.dao.the.TheJPA"> 
    <property name="entityManagerFactory" ref="entityManagerFactory"></property> 
</bean> 

错误我得到的是

[PersistenceUnit: xyz] Unable to build EntityManagerFactory 

任何一个可以告诉我错误

+1

必须有更多的错误 - 例如堆栈跟踪。 – Bozho

回答

8

的主要问题是,entites的不正确生成。因此在堆栈跟踪结束它给这个错误

Caused by: org.hibernate.MappingException: property mapping has wrong number of columns: com......date type: object 

一旦实体生成正确的问题解决了

1

Someone answered here

如果使用JTA事务类型定义持久化单元,你需要 也来定义的JTA数据源中的数据源 属性。

尝试添加以下内容到ApplicationContext.xml

<jee:jndi-lookup id="dataSource" jndi-name="your-jndi-name" /> 

persistence.xml以下到<persistence-unit>元素:

<jta-data-source>your-jndi-name</jta-data-source> 
+1

我没有使用jndi连接..我将ApplicationContext.xml中的连接配置设置作为dataSource –

0

,因为你已经映射你的域对象数据类型为Java您收到此错误。 lang.Object。将其映射到更具体的像String,int,long ...

相关问题