2016-06-06 9 views
22

मैं नवीनतम स्थिर स्प्रिंग संस्करण (4.2.6.RELEASE) का उपयोग कर रहा साथ हाइबरनेट 5.2 एकीकृत करें।स्प्रिंग ढांचे 4.x

5.2 करने के लिए 5.1 से हाइबरनेट उन्नयन और hibernate-entitymanager निर्भरता hibernate-core की वजह से हाइबरनेट प्रलेखन बदलने के बाद:

Jun 06, 2016 12:00:38 PM org.springframework.test.context.TestContextManager beforeTestMethod 
WARNING: Caught exception while allowing TestExecutionListener [org.springframew[email protected]548b7f67] to process 'before' execution of test method [public void com.rh.cores.architecture.tests.units.person.PersonTest.add_iranianNaturalPersonDateIsInvalid_preventSaving()] for test instance [[email protected]] 
org.springframework.transaction.CannotCreateTransactionException: Could not open JPA EntityManager for transaction; nested exception is java.lang.NoSuchMethodError: org.hibernate.Session.getFlushMode()Lorg/hibernate/FlushMode; 
    at org.springframework.orm.jpa.JpaTransactionManager.doBegin(JpaTransactionManager.java:431) 
    at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:373) 
    at org.springframework.test.context.transaction.TransactionContext.startTransaction(TransactionContext.java:98) 
    at org.springframework.test.context.transaction.TransactionalTestExecutionListener.beforeTestMethod(TransactionalTestExecutionListener.java:200) 
    at org.springframework.test.context.TestContextManager.beforeTestMethod(TestContextManager.java:265) 
    at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:74) 
    at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) 
    at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86) 
    at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84) 
    at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) 
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:254) 
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:89) 
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) 
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) 
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) 
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) 
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) 
    at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) 
    at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70) 
    at org.junit.runners.ParentRunner.run(ParentRunner.java:363) 
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:193) 
    at org.junit.runner.JUnitCore.run(JUnitCore.java:137) 
    at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:119) 
    at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:42) 
    at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:234) 
    at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:74) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:497) 
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) 
Caused by: java.lang.NoSuchMethodError: org.hibernate.Session.getFlushMode()Lorg/hibernate/FlushMode; 
    at org.springframework.orm.jpa.vendor.HibernateJpaDialect.prepareFlushMode(HibernateJpaDialect.java:187) 
    at org.springframework.orm.jpa.vendor.HibernateJpaDialect.beginTransaction(HibernateJpaDialect.java:173) 
    at org.springframework.orm.jpa.JpaTransactionManager.doBegin(JpaTransactionManager.java:380) 
    ... 30 more 

Jun 06, 2016 12:00:38 PM org.springframework.jdbc.datasource.init.ScriptUtils executeSqlScript 
INFO: Executing SQL script from class path resource [test/downs/architecture/down.sql] 
Jun 06, 2016 12:00:38 PM org.springframework.jdbc.datasource.init.ScriptUtils executeSqlScript 
INFO: Executed SQL script from class path resource [test/downs/architecture/down.sql] in 5 ms. 

org.springframework.transaction.CannotCreateTransactionException: Could not open JPA EntityManager for transaction; nested exception is java.lang.NoSuchMethodError: org.hibernate.Session.getFlushMode()Lorg/hibernate/FlushMode; 

    at org.springframework.orm.jpa.JpaTransactionManager.doBegin(JpaTransactionManager.java:431) 
    at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:373) 
    at org.springframework.test.context.transaction.TransactionContext.startTransaction(TransactionContext.java:98) 
    at org.springframework.test.context.transaction.TransactionalTestExecutionListener.beforeTestMethod(TransactionalTestExecutionListener.java:200) 
    at org.springframework.test.context.TestContextManager.beforeTestMethod(TestContextManager.java:265) 
    at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:74) 
    at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) 
    at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86) 
    at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84) 
    at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) 
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:254) 
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:89) 
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) 
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) 
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) 
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) 
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) 
    at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) 
    at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70) 
    at org.junit.runners.ParentRunner.run(ParentRunner.java:363) 
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:193) 
    at org.junit.runner.JUnitCore.run(JUnitCore.java:137) 
    at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:119) 
    at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:42) 
    at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:234) 
    at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:74) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:497) 
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) 
Caused by: java.lang.NoSuchMethodError: org.hibernate.Session.getFlushMode()Lorg/hibernate/FlushMode; 
    at org.springframework.orm.jpa.vendor.HibernateJpaDialect.prepareFlushMode(HibernateJpaDialect.java:187) 
    at org.springframework.orm.jpa.vendor.HibernateJpaDialect.beginTransaction(HibernateJpaDialect.java:173) 
    at org.springframework.orm.jpa.JpaTransactionManager.doBegin(JpaTransactionManager.java:380) 
    ... 30 more 
+6

वसंत ढांचा 4.3.0.आरसी 2 उपलब्ध है जो हाइबरनेट 5.2 का समर्थन करता है। यह आरसी संस्करण है, लेकिन जीए जल्द ही उपलब्ध होगा। आप वसंत को अपग्रेड कर सकते हैं लेकिन जब भी GA उपलब्ध हो तो ट्रैक और अपडेट करने की आवश्यकता है –

उत्तर

30

Hibernate 5.2Spring framework 4.3 में जोड़ा गया समर्थन करता है, कि इसका स्थिर संस्करण अगले सप्ताह में उपलब्ध होगा। स्प्रिंग 4.2 केवल 5.1 तक हाइबरनेट का समर्थन करता है।

https://jira.spring.io/browse/SPR-14334

+1

धन्यवाद @ कशी –

-4

तरीके: https://github.com/hibernate/hibernate-orm/wiki/Migration-Guide---5.2

मैं किसी भी संकलन त्रुटि लेकिन मेरे सभी परीक्षणों प्राप्त न इस स्टैक ट्रेस के साथ विफल हैं

applyFlushModeHint

protected boolean applyFlushModeHint(FlushMode flushMode) 

Apply the FlushMode hint. 

Parameters: 
    flushMode - The FlushMode value specified as hint 
Returns: 
    true if the hint was "applied" 

कहाँ FlushMode

हो सकता है हमेशा सत्र हर क्वेरी से पहले प्लावित है।
ऑटो सत्र कभी कभी यह सुनिश्चित करने के प्रश्नों बासी राज्य वापस कभी नहीं में क्वेरी निष्पादन से पहले प्लावित है।
COMMIT जब Transaction.commit() कहा जाता है सत्र प्लावित है।
मैनुअल सत्र ही कभी प्लावित जब Session.flush() स्पष्ट रूप से आवेदन के द्वारा कहा जाता है।
कभी पदावनत। इसके बजाए मैनुअल का प्रयोग करें।

+0

मैं इस विधि का सीधे उपयोग नहीं करता हूं। इसे वसंत लेनदेन प्रबंधक द्वारा बुलाया जाता है! क्या इसका मतलब है कि मुझे हाइबरनेट ओआरएम 5.2 का समर्थन करने के लिए वसंत रिलीज के नए संस्करण की प्रतीक्षा करनी चाहिए? –

+0

आप यहां हाइबरनेट दस्तावेज़ पढ़ सकते हैं। https://docs.jboss.org/hibernate/orm/5.2/javadocs/overview-summary.html –

+0

applyFlushModeHint समारोह की कोशिश करो। –

2

समस्या केवल संस्करणों से संबंधित है:

यह देख। स्प्रिंग 4.3.7 के साथ हाइबरनेट संस्करण 5.1.0 का उपयोग करें। यह इस मुद्दे को हल करेगा।
संस्करण 4.3.x की स्प्रिंग फ्रेमवर्क निर्भरताओं के साथ नीचे निर्भरता जोड़ें।

<dependency> 
    <groupId>org.hibernate</groupId> 
    <artifactId>hibernate-entitymanager</artifactId> 
    <version>5.1.0.Final</version> 
</dependency>` 
संबंधित मुद्दे