2011-08-06 10 views
8

के साथ जेपीए कनेक्शन मैं जेपीए प्रोजेक्ट के साथ एक हाइबरनेट विकसित कर रहा हूं और एच 2 (एंबेडेड डेटाबेस) का उपयोग कर काम कर रहे persistence.xml प्राप्त करने की कोशिश कर रहा हूं।एच 2 डेटाबेस

Persistence.xml

<persistence xmlns="http://java.sun.com/xml/ns/persistence" 
    version="1.0"> 

    <persistence-unit name="DefaultPersistenceUnit" 
     transaction-type="RESOURCE_LOCAL"> 

     <provider>org.hibernate.ejb.HibernatePersistence</provider> 
     <class>entity.user</class> 
     <properties> 
      <property name="hibernate.connection.url" value="jdbc:h2:/~test" /> --> 
      <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"></property> 
      <property name="hibernate.connection.driver_class" value="org.h2.Driver" /> 
      <property name="hibernate.connection.password" value="admin" /> 
      <property name="hibernate.connection.username" value="admin" /> 
     </properties> 
    </persistence-unit> 
</persistence> 

लेकिन मेरे इस काम नहीं कर रहा है, हमेशा मैं त्रुटि

"EntityManagerFactory बनाने में असमर्थ"

EntityManagerFactory emf = Persistence.createEntityManagerFactory("DefaultPersistenceUnit"); 

हो रही है। क्या कोई मुझे कामकाजी persistence.xml प्रदान कर सकते हैं?

+2

क्या त्रुटि संदेश केवल यही कहता है? क्या आपके पास अधिक विस्तृत संदेश और/या स्टैक ट्रेस नहीं है? क्या आपकी कक्षा वास्तव में entity.user नामित है? –

+1

क्या आपका 'hibernate.connection.url' वास्तव में' jdbc: h2:/~ test' है? 'jdbc: h2: फ़ाइल: ~/test; IFEXISTS = TRUE' अधिक व्यावहारिक लगता है। – trashgod

+1

क्या [हाइबरनेट का संस्करण] (http://www.h2database.com/html/tutorial.html#using_hibernate)? – trashgod

उत्तर

9

क्या आप वसंत का उपयोग कर रहे हैं? यदि ऐसा है तो आप इसे तब तक कोशिश कर सकते हैं जब तक EntityManagerFactory एक कंटेनर

<bean id="entityManagerFactory" 
     class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> 
    <property name="dataSource" ref="dataSource" /> 
    <property name="jpaVendorAdapter"> 
     <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"> 
      <property name="generateDdl" value="true" /> 
      <property name="database" value="H2" /> 
     </bean> 
    </property> 
    <property name="persistenceUnitName" value="DefaultPersistenceUnit" /> 
</bean> 

<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="org.h2.Driver" /> 
    <property name="url" value="jdbc:h2:database/~test" /> 
    <property name="username" value="sa" /> 
    <property name="password" value="" /> 
</bean> 
+0

मैं इस दृष्टिकोण को पसंद करता हूं क्योंकि 'persistence.xml' को स्विच करने से परीक्षणों या अन्य कॉन्फ़िगरेशन (वेब ​​या स्टैंडअलोन) के लिए बीन्स को स्विच करना आसान है। –

संबंधित मुद्दे