2011-11-08 8 views
5

मैं जेपीए 2 उपयोग कर रहा हूँ एक JSF 2 परियोजना में, तो मैं कॉन्फ़िगर ग्लासफिश v3 में मेरी डेटा स्रोत, सब कुछ ठीक है, लेकिन यह देता है कि अगर मैं हाइबरनेट उपकरण में जेपीए प्रश्नों परीक्षण करने की कोशिश पता नहीं लग सका मुझे अनुवर्ती त्रुटि:जेपीए: TransactionManager

<?xml version="1.0" encoding="UTF-8"?> 
<persistence version="2.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_2_0.xsd"> 
    <persistence-unit name="SuaParte" transaction-type="JTA"> 
     <jta-data-source>jdbc/suaparte_ds</jta-data-source> 
     <class>entity.Area</class> 
     <properties> 
      <property name="eclipselink.logging.level" value="FINE"/> 
      <property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.JBossTransactionManagerLookup"/> 
     </properties> 


    </persistence-unit> 
</persistence> 

मेरी ग्रहण JSF 2 परियोजना में मैं EclipseLink 2.3 (इंडिगो) और जेपीए 2 उपयोग कर रहा हूँ:

Sessionfactory error:Could not locate TransactionManager 

यहाँ मेरी persistence.xml है।

संपादित @fonini दृष्टिकोण का पालन करें, मेरे hibernate.properties: error

क्या मैं अपने संस्थाओं में id generator बदलना होगा:

hibernate.connection.username=<filled> 
hibernate.connection.password=<filled> 
hibernate.connection.driver_class=com.mysql.jdbc.Driver 
hibernate.dialect=org.hibernate.dialect.MySQLDialect 
hibernate.connection.url=<filled> 
hibernate.connection.provider_class=org.hibernate.connection.DriverManagerConnectionProvider 
hibernate.datasource=jdbc/suaparte_ds 
hibernate.transaction.manager_lookup_class=org.hibernate.transaction.JBossTransactionManagerLookup 

लेकिन अब मुझे एक और त्रुटि देता है?

@Entity 
    @Table(name="product") 
    public class Product implements Serializable { 
     private static final long serialVersionUID = 1L; 

     @Id 
     @GeneratedValue(strategy=GenerationType.SEQUENCE) 
     private Integer id; 

     @Size(max=150, message="150 caracteres no máximo") 
     private String description; 

     // getters and setter 
} 
+0

आप एक Glassfish सर्वर से अपनी परियोजना को तैनात है, यह काम करता है:

यहाँ एक उदाहरण फ़ाइल है? – fonini

+0

यह @fonini, मैं सिर्फ JPQL प्रश्नों का परीक्षण करने और पता चला कि हाइबरनेट उपकरण इस में सक्षम है करने के लिए करता है। –

+0

MySQL में अनुक्रम नहीं हैं, यह ऑटो-वृद्धि के साथ काम करता है। आपको GenerationType.SEQUENCE को GenerationType.IDENTITY – fonini

उत्तर

0

चूंकि हाइबरनेट उपकरण ग्रहण के अंदर चलाते हैं, इसलिए इसके पास एप्लिकेशन सर्वर विशिष्ट डेटा स्रोतों तक पहुंच नहीं है।

आप उपयोग कर सकते हैं एक गुण सेटअप कनेक्शन है कि डेटा स्रोत को पार कर जाएगी फ़ाइल।

hibernate.connection.username=user 
hibernate.connection.password=pass 
hibernate.connection.driver_class=org.PostgreSQL.Driver 
hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect 
hibernate.connection.url=jdbc:postgresql... 

hibernate.connection.provider_class=org.hibernate.connection.DriverManagerConnectionProvider 
hibernate.datasource= 
hibernate.transaction.manager_lookup_class= 
+0

अगर MySQL में रहें तो कैसे रहेगा? मैं MySQL का उपयोग कर रहा हूँ, खेद = पहले उल्लेख किया नहीं) –

+0

मैं अपने hibernate.properties सेट कर सकते हैं, मैं अपनी पोस्ट अद्यतन करें। –

+1

बोली: org.hibernate.dialect.MySQLDialect। यदि आप InnoDB (org.hibernate.dialect.MySQLInnoDBDialect) का उपयोग कर रहे हैं, तो यदि आप MyISAM (org.hibernate.dialect.MySQLMyISAMDialect) का उपयोग कर रहे हैं। चालक वर्ग: com.mysql.jdbc.Driver। यूआरएल: जेडीबीसी: mysql: // localhost/your_db। उम्मीद है की यह मदद करेगा! – fonini