2010-04-19 7 views
15

मैं हाइबरनेट उपयोग करने के लिए एक वर्ग है कि इस तरह दिखता है लागू करने के लिए कोशिश कर रहा हूँ नहीं मिल सकता है: निम्नलिखितहाइबरनेट डिफ़ॉल्ट tuplizer का दृष्टांत करने में असमर्थ गेटर

public class Item implements Serializable, Comparable<Item> { 

// Item id 
private Integer id; 

// Description of item in inventory 
private String description; 

// Number of items described by this inventory item 
private int count; 

//Category item belongs to 
private String category; 

// Date item was purchased 
private GregorianCalendar purchaseDate; 

    public Item() { 
} 

    public Integer getId() { 
    return id; 
} 

public void setId(Integer id) { 
    this.id = id; 
} 

    public String getDescription() { 
    return description; 
} 

public void setDescription(String description) { 
    this.description = description; 
} 

public int getCount() { 
    return count; 
} 

public void setCount(int count) { 
    this.count = count; 
} 

public String getCategory() { 
    return category; 
} 

public void setCategory(String category) { 
    this.category = category; 
} 

public GregorianCalendar getPurchaseDate() { 
    return purchaseDate; 
} 

public void setPurchasedate(GregorianCalendar purchaseDate) { 
    this.purchaseDate = purchaseDate; 
} 

मेरे हाइबरनेट मैपिंग फ़ाइल शामिल:

<property name="puchaseDate" type="java.util.GregorianCalendar"> 
    <column name="purchase_date"></column> 
</property> 

जब मैं दौड़ने की कोशिश करता हूं, तो मुझे त्रुटि संदेश मिलते हैं जो खरीद के लिए कोई गेटर फ़ंक्शन नहीं है दिनांक:

577 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - Using Hibernate built-in connection pool (not for production use!) 
577 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - Hibernate connection pool size: 20 
577 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - autocommit mode: false 
592 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - using driver: com.mysql.jdbc.Driver at URL: jdbc:mysql://localhost:3306/home_inventory 
592 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - connection properties: {user=root, password=****} 
1078 [main] INFO org.hibernate.cfg.SettingsFactory - RDBMS: MySQL, version: 5.1.45 
1078 [main] INFO org.hibernate.cfg.SettingsFactory - JDBC driver: MySQL-AB JDBC Driver, version: mysql-connector-java-5.1.12 (Revision: ${bzr.revision-id}) 
1103 [main] INFO org.hibernate.dialect.Dialect - Using dialect: org.hibernate.dialect.MySQLDialect 
1107 [main] INFO org.hibernate.engine.jdbc.JdbcSupportLoader - Disabling contextual LOB creation as JDBC driver reported JDBC version [3] less than 4 
1109 [main] INFO org.hibernate.transaction.TransactionFactoryFactory - Using default transaction strategy (direct JDBC transactions) 
1110 [main] INFO org.hibernate.transaction.TransactionManagerLookupFactory - No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended) 
1110 [main] INFO org.hibernate.cfg.SettingsFactory - Automatic flush during beforeCompletion(): disabled 
1110 [main] INFO org.hibernate.cfg.SettingsFactory - Automatic session close at end of transaction: disabled 
1110 [main] INFO org.hibernate.cfg.SettingsFactory - JDBC batch size: 15 
1110 [main] INFO org.hibernate.cfg.SettingsFactory - JDBC batch updates for versioned data: disabled 
1111 [main] INFO org.hibernate.cfg.SettingsFactory - Scrollable result sets: enabled 
1111 [main] INFO org.hibernate.cfg.SettingsFactory - JDBC3 getGeneratedKeys(): enabled 
1111 [main] INFO org.hibernate.cfg.SettingsFactory - Connection release mode: auto 
1111 [main] INFO org.hibernate.cfg.SettingsFactory - Maximum outer join fetch depth: 2 
1111 [main] INFO org.hibernate.cfg.SettingsFactory - Default batch fetch size: 1 
1111 [main] INFO org.hibernate.cfg.SettingsFactory - Generate SQL with comments: disabled 
1111 [main] INFO org.hibernate.cfg.SettingsFactory - Order SQL updates by primary key: disabled 
1111 [main] INFO org.hibernate.cfg.SettingsFactory - Order SQL inserts for batching: disabled 
1112 [main] INFO org.hibernate.cfg.SettingsFactory - Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory 
1113 [main] INFO org.hibernate.hql.ast.ASTQueryTranslatorFactory - Using ASTQueryTranslatorFactory 
1113 [main] INFO org.hibernate.cfg.SettingsFactory - Query language substitutions: {} 
1113 [main] INFO org.hibernate.cfg.SettingsFactory - JPA-QL strict compliance: disabled 
1113 [main] INFO org.hibernate.cfg.SettingsFactory - Second-level cache: enabled 
1113 [main] INFO org.hibernate.cfg.SettingsFactory - Query cache: disabled 
1113 [main] INFO org.hibernate.cfg.SettingsFactory - Cache region factory : org.hibernate.cache.impl.NoCachingRegionFactory 
1113 [main] INFO org.hibernate.cfg.SettingsFactory - Optimize cache for minimal puts: disabled 
1114 [main] INFO org.hibernate.cfg.SettingsFactory - Structured second-level cache entries: disabled 
1117 [main] INFO org.hibernate.cfg.SettingsFactory - Echoing all SQL to stdout 
1118 [main] INFO org.hibernate.cfg.SettingsFactory - Statistics: disabled 
1118 [main] INFO org.hibernate.cfg.SettingsFactory - Deleted entity synthetic identifier rollback: disabled 
1118 [main] INFO org.hibernate.cfg.SettingsFactory - Default entity-mode: pojo 
1118 [main] INFO org.hibernate.cfg.SettingsFactory - Named query checking : enabled 
1118 [main] INFO org.hibernate.cfg.SettingsFactory - Check Nullability in Core (should be disabled when Bean Validation is on): enabled 
1151 [main] INFO org.hibernate.impl.SessionFactoryImpl - building session factory 
org.hibernate.HibernateException: Unable to instantiate default tuplizer [org.hibernate.tuple.entity.PojoEntityTuplizer] 
    at org.hibernate.tuple.entity.EntityTuplizerFactory.constructTuplizer(EntityTuplizerFactory.java:110) 
    at org.hibernate.tuple.entity.EntityTuplizerFactory.constructDefaultTuplizer(EntityTuplizerFactory.java:135) 
    at org.hibernate.tuple.entity.EntityEntityModeToTuplizerMapping.<init>(EntityEntityModeToTuplizerMapping.java:80) 
    at org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:323) 
    at org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:475) 
    at org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:133) 
    at org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:84) 
    at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:295) 
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1385) 
    at service.HibernateSessionFactory.currentSession(HibernateSessionFactory.java:53) 
    at service.ItemSvcHibImpl.generateReport(ItemSvcHibImpl.java:78) 
    at service.test.ItemSvcTest.testGenerateReport(ItemSvcTest.java:226) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at junit.framework.TestCase.runTest(TestCase.java:164) 
    at junit.framework.TestCase.runBare(TestCase.java:130) 
    at junit.framework.TestResult$1.protect(TestResult.java:106) 
    at junit.framework.TestResult.runProtected(TestResult.java:124) 
    at junit.framework.TestResult.run(TestResult.java:109) 
    at junit.framework.TestCase.run(TestCase.java:120) 
    at junit.framework.TestSuite.runTest(TestSuite.java:230) 
    at junit.framework.TestSuite.run(TestSuite.java:225) 
    at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130) 
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) 
Caused by: java.lang.reflect.InvocationTargetException 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513) 
    at org.hibernate.tuple.entity.EntityTuplizerFactory.constructTuplizer(EntityTuplizerFactory.java:107) 
    ... 29 more 
Caused by: org.hibernate.PropertyNotFoundException: Could not find a getter for puchaseDate in class domain.Item 
    at org.hibernate.property.BasicPropertyAccessor.createGetter(BasicPropertyAccessor.java:328) 
    at org.hibernate.property.BasicPropertyAccessor.getGetter(BasicPropertyAccessor.java:321) 
    at org.hibernate.mapping.Property.getGetter(Property.java:304) 
    at org.hibernate.tuple.entity.PojoEntityTuplizer.buildPropertyGetter(PojoEntityTuplizer.java:299) 
    at org.hibernate.tuple.entity.AbstractEntityTuplizer.<init>(AbstractEntityTuplizer.java:158) 
    at org.hibernate.tuple.entity.PojoEntityTuplizer.<init>(PojoEntityTuplizer.java:77) 
    ... 34 more 

मैं हाइबरनेट के लिए नया हूं, इसलिए मुझे सभी इंस और आउट्स नहीं पता हैं, लेकिन मेरे पास buyDate विशेषता के लिए गेटटर और सेटर है। मुझे नहीं पता कि मैं यहाँ क्या खो रहा हूं - क्या कोई और करता है?

उत्तर

5

ऐसा लगता है कि समस्या शायद पूंजीकरण में है: setPurchasedate()setPurchaseDate() (पूंजी "डी" के साथ) होना चाहिए।

16

इसके अलावा पर स्टैक ट्रेस नीचे, यह इस का कहना है:

missing a getter for puchaseDate 

आप गलत वर्तनी की जांच करना चाह सकते;) तुम एक अनुसंधान वंचित हो रहे हैं और setPurchasedate setPurchaseDate

+0

ठीक है, मैं मैं कुछ बेवकूफ याद आ रही थी पता था। बहुत बहुत धन्यवाद! – ZeldaPinwheel

+0

मुझे एक सेटटर पर ऊंट के साथ एक ही समस्या थी। समस्या फिक्स्ड। –

+0

मुझे एक ही समस्या थी - यह विशेष त्रुटि संदेश पहले * एक और * कह रहा था कि मेरे पास गेटर/सेटर्स सेटअप सही नहीं था ... – rogerdpack

35

यह मेरे पास आया होना चाहिए बिना किसी टाइपो के। मैंने javassist.jar को क्लासपाथ में जोड़ा है और इससे समस्या हल हो गई है।

+1

यह त्रुटि मुझे ग्रहण के लिए M2Eclipse Maven प्लगइन के साथ काम करने के बाद हुई, 3.6.4 हाइबरनेट करने की निर्भरता। वह निर्भरता स्पष्ट रूप से पर्याप्त नहीं थी। मुझे जवासिस्ट को भी एक और निर्भरता जोड़नी पड़ी। संकेत के लिए धन्यवाद, smentek। – knb

4

यह मदद कर सकता है अगर किसी:

मेरे मामले में मेरे मानचित्रण फ़ाइलें में त्रुटियां थीं। कक्षाओं को उनके पूर्ण पैकेज नामों से संदर्भित नहीं किया गया था। मैंने यह गलती की क्योंकि मैंने मैपिंग जेनरेट की थी जब मेरी बीन कक्षाएं डिफ़ॉल्ट पैकेज से संबंधित थीं (इसलिए com.mypackage.Order के बजाय Order) और फिर मैंने अपनी बीन कक्षाओं को पैकेज में स्थानांतरित कर दिया (उदाहरण में com.mypackage)। दुर्भाग्यवश मैपिंग फ़ाइलों को नई पैकेज परिभाषा के अनुसार बदल नहीं दिया गया था।

मेरे संकेत हाइबरनेट फिर से करना रिवर्स इंजीनियर और देखें कि यह क्या पैदा करता है, अपने वर्तमान मानचित्रण फाइलों के साथ तुलना है।

+0

धन्यवाद, यह मेरे लिए किया, आपने मुझे सिरदर्द बचाया। मेरे पास पहले से ही जावस्सिस्ट था, और अन्य सभी समाधान उनके गेटर्स/सेटर्स में कुछ गड़बड़ कर रहे थे, और मुझे पता नहीं चला कि मेरी फाइलों में यह समस्या मेरे लिए कहां थी। मैं सिर्फ यह समझने के लिए इंजीनियर हूं कि यह क्या होना चाहिए, और यह चाल है। : डी – yuudachi

+0

+1 ने मेरा दिन – Jakob

2

मैं

Unable to instantiate default tuplizer [org.hibernate.tuple.entity.PojoEntityTuplizer] 

अनुभव है क्योंकि मैं donkeyness की एक क्षणिक चूक था जब एक POJO है कि मैं पहले से मैप किया गया था पर एक क्षेत्र का नाम बदलने।

मैं बदल जावा का श्रेय मेरी भरोसेमंद आईडीई refactor हॉटकी, जो नहीं भी गेटर & सेटर विधि नाम बदलने करता है के साथ एक नाम दें। मैंने गेटर बदल दिया (क्योंकि उसने अपना @ कॉलम एनोटेशन के साथ अपना ध्यान खींचा जिसे मुझे संबोधित करने की भी आवश्यकता थी क्योंकि टेबल कॉलम नाम बदल रहा था)।

मैंने सेटटर को बदलने के लिए उपेक्षित किया, और यह त्रुटि का कारण था।

3

विधि नाम के वेतन ध्यान, यह केस संवेदी है!

मेरे मामले में, यह गेटर को बहुत अच्छी तरह से पहचान नहीं पाया; मेरा संपत्ति का नाम uId था और मैंने गेटटर नाम के लिए getUId नाम का उपयोग किया और जब मैंने इसे getuId समस्या में हल किया! मैं सिर्फ यह है कि मूर्ख होने की उम्मीद नहीं थी -

+0

बचाया है तो सच है। एक्लिप्स को मैन्युअल रूप से लिखने के बजाय गेटर्स और सेटर्स उत्पन्न करना बहुत आसान है। – Rahul

2

मैं जावा assit.jar शामिल है और यह

काम किया
<dependency> 
    <groupId>javassist</groupId> 
    <artifactId>javassist</artifactId> 
    <version>3.12.1.GA</version> 
</dependency> 
संबंधित मुद्दे