J'ai un projet de printemps avec une usine de gestionnaire d'entités de configuration XML, dont une partie pointe vers un fichier de mappage externe qui contient toutes mes requêtes .JPA XML Mapping fichier résout très bien, mais ne parvient pas à résoudre lors de l'exécution d'un test JUnit
Voici les versions que je utilise:
version printemps: 4.1.1.RELEASE
version JUnit: 4.9
Version printemps-données-JPA: 1.7.1.RELEASE
Version Java: 1.8
Le problème ici est que mon projet a bien fonctionné avant d'essayer d'ajouter une classe de test JUnit à mon application. En fait, le projet a commencé avec zéro erreur et j'ai pu exécuter chaque requête sans accroc. Maintenant que j'ai ajouté une classe de test, elle échoue car pendant le test unitaire, elle essaie de configurer le contexte de l'application et ne parvient pas à résoudre mon fichier de mappage. (à partir de ce que je peux déchiffrer dans la trace de la pile) Pourquoi ??
Le fichier que je suis en train de charger est queries.xml
et il est situé dans src/main/resources
est ici le fichier ci-dessous:
<?xml version="1.0" encoding="UTF-8"?>
<entity-mappings xmlns="http://xmlns.jcp.org/xml/ns/persistence/orm"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence/orm
http://xmlns.jcp.org/xml/ns/persistence/orm_2_1.xsd"
version="2.1">
<named-query name="GameSet.getNewTutorial">
<query>
<![CDATA[
SELECT gs
FROM GameSet gs
WHERE gs.id.gameCatCd = :qstnSet
AND gs.presetQstn.id.qstnSet = 'tutorials'
ORDER BY gs.qstnOrder ASC
]]>
</query>
</named-query>
<named-query name="WkstHdr.getExistingWorksheet">
<query>
<![CDATA[
SELECT wh
FROM WkstHdr wh
WHERE wh.id.startDate BETWEEN :beginTimestamp AND :endTimestamp
AND wh.id.warriorId = :warriorId
AND wh.id.qstnSet = :qstnSet
]]>
</query>
</named-query>
<named-query name="GameSet.getNewWorksheet">
<query>
<![CDATA[
SELECT gs
FROM GameSet gs
WHERE gs.presetQstn.id.qstnSet = :qstnSet
]]>
</query>
</named-query>
<named-query name="WkstVal.getExistingTutorial">
<query>
<![CDATA[
SELECT v
FROM WkstVal v
WHERE v.id.warriorId = :warriorId
AND v.id.gameCatCd = :qstnSet
AND v.id.qstnSet = 'tutorials'
ORDER BY v.gameSet.qstnOrder
]]>
</query>
</named-query>
<named-native-query name="Score.getScore" result-set-mapping="ScoreMapping">
<query>
<![CDATA[
SELECT sum(CASE WHEN v.bool_resp = true THEN pq.points ELSE 0 END)/:total AS points,
sum(CASE WHEN ((v.game_cat_cd = 'summary') AND (v.game_sub_cat_cd = 'zone') AND (v.num_resp > 0)) THEN v.num_resp ELSE 0 END)/
(CASE WHEN (CASE WHEN :total = 1 THEN 1 ELSE (sum(CASE WHEN ((v.game_cat_cd = 'summary') AND (v.game_sub_cat_cd = 'zone') AND (v.num_resp > 0)) THEN 1 ELSE 0 END)) END) > 0 THEN (CASE WHEN :total = 1 THEN 1 ELSE (sum(CASE WHEN ((v.game_cat_cd = 'summary') AND (v.game_sub_cat_cd = 'zone') AND (v.num_resp > 0)) THEN 1 ELSE 0 END)) END) ELSE 1 END) AS zone,
sum(CASE WHEN ((v.game_cat_cd = 'summary') AND (v.game_sub_cat_cd = 'power')) THEN v.num_resp ELSE 0 END)/:total AS power
FROM preset_qstn pq JOIN game_set gs JOIN wkst_hdr wh JOIN wkst_val v
ON wh.warrior_id = v.warrior_id
AND wh.qstn_set = v.qstn_set
AND wh.start_date = v.start_date
ON gs.game_cat_cd = v.game_cat_cd
AND gs.game_sub_cat_cd = v.game_sub_cat_cd
AND gs.game_cd = v.game_cd
AND gs.qstn_cd = v.qstn_cd
ON pq.qstn_set = gs.qstn_set
AND pq.qstn_cd = gs.qstn_cd
WHERE wh.warrior_id = :warriorId
AND wh.qstn_set = :qstnSet
AND wh.start_date BETWEEN :beginTimestamp AND :endTimestamp
]]>
</query>
</named-native-query>
<named-native-query name="Task.getTasks" result-set-mapping="TaskMapping">
<query>
<![CDATA[
SELECT "public"."wkst_hdr"."start_date" AS startDate,
"public"."wkst_hdr"."cmpl_date" AS cmplDate,
"public"."wkst_val"."bool_resp" AS important,
"public"."wkst_val"."txt_resp" AS description
FROM "public"."wkst_hdr"
JOIN "public"."wkst_val"
ON "public"."wkst_hdr"."warrior_id" = "public"."wkst_val"."warrior_id"
AND "public"."wkst_hdr"."start_date" = "public"."wkst_val"."start_date"
AND "public"."wkst_hdr"."qstn_set" = "public"."wkst_val"."qstn_set"
WHERE "public"."wkst_hdr"."warrior_id" = :warriorId
AND "public"."wkst_hdr"."qstn_set" = 'todos'
ORDER BY "public"."wkst_hdr"."start_date" DESC,
"public"."wkst_val"."bool_resp" DESC
]]>
</query>
</named-native-query>
<sql-result-set-mapping name="ScoreMapping">
<constructor-result target-class="com.wakeupwarrior.model.api.Score">
<column name="zone" class="java.math.BigDecimal"/>
<column name="points" class="java.math.BigDecimal"/>
<column name="power" class="java.math.BigDecimal"/>
</constructor-result>
</sql-result-set-mapping>
<sql-result-set-mapping name="TaskMapping">
<constructor-result target-class="com.wakeupwarrior.model.api.Task">
<column name="startDate" class="java.util.Date"/>
<column name="cmplDate" class="java.util.Date"/>
<column name="description" class="java.lang.String"/>
<column name="important" class="java.lang.Boolean"/>
</constructor-result>
</sql-result-set-mapping>
j'ai un fichier de contexte de l'application principale et j'ai un contexte fichier pour les tests JUnit, ils sont exactement les mêmes. Voici une copie de mon dossier de contexte:
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/mvc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:jpa="http://www.springframework.org/schema/data/jpa"
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/data/jpa
http://www.springframework.org/schema/data/jpa/spring-jpa.xsd">
<!-- Enables the Spring MVC @Controller programming model and pageable -->
<annotation-driven>
<argument-resolvers>
<beans:bean id="sortResolver" class="org.springframework.data.web.SortHandlerMethodArgumentResolver" />
<beans:bean id="pageableResolver" class="org.springframework.data.web.PageableHandlerMethodArgumentResolver">
<beans:constructor-arg ref="sortResolver" />
</beans:bean>
</argument-resolvers>
</annotation-driven>
<!-- Enables Spring to bootstrap the correct packages, looking for components -->
<context:component-scan base-package="com.slconnected.*" />
<context:component-scan base-package="com.wakeupwarrior.*" />
<!-- Handles HTTP GET requests for the index.html file -->
<resources mapping="/*" location="/" />
<!-- Handles HTTP GET requests for /resources/** by serving static resources in the ${webappRoot}/resources directory -->
<resources mapping="/resources/**" location="/resources/" />
<resources mapping="/node_modules/**" location="/node_modules/" />
<resources mapping="/themes/**" location="/themes/" />
<!-- Resolves messages on error inputs -->
<beans:bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<beans:property name="basename" value="classpath:messages" />
</beans:bean>
<!-- Adds properties from warrior-db.properties -->
<beans:bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<beans:property name="location" value="classpath:warrior-db.properties" />
</beans:bean>
<!-- Warrior DB data source with c3p0 connection pool-->
<beans:bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<!-- Connection properties -->
<beans:property name="driverClass" value="${jdbc.driverClass}" />
<beans:property name="jdbcUrl" value="${jdbc.jdbcUrl}" />
<beans:property name="user" value="${jdbc.user}" />
<beans:property name="password" value="${jdbc.password}" />
<!-- Pool properties -->
<beans:property name="minPoolSize" value="${jdbc.minPoolSize}" />
<beans:property name="maxPoolSize" value="${jdbc.maxPoolSize}" />
<beans:property name="acquireIncrement" value="${jdbc.acquireIncrement}" />
<beans:property name="maxStatements" value="${jdbc.maxStatements}" />
<beans:property name="idleConnectionTestPeriod" value="${jdbc.idleConnectionTestPeriod}" />
<beans:property name="loginTimeout" value="${jdbc.loginTimeout}" />
</beans:bean>
<!-- Entity Manager Factory -->
<beans:bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<beans:property name="dataSource" ref="dataSource" />
<beans:property name="packagesToScan" value="com.wakeupwarrior.model.warriordb" />
<beans:property name="mappingResources">
<beans:list>
<beans:value>
classpath:queries.xml
</beans:value>
</beans:list>
</beans:property>
<beans:property name="jpaProperties">
<beans:props>
<beans:prop key="hibernate.current_session_context_class">
org.springframework.orm.hibernate4.SpringSessionContext
</beans:prop>
</beans:props>
</beans:property>
<beans:property name="jpaVendorAdapter">
<beans:bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<beans:property name="databasePlatform" value="${jdbc.databasePlatform}" />
<beans:property name="showSql" value="${jdbc.showSql}" />
</beans:bean>
</beans:property>
</beans:bean>
<!-- Transaction Manager -->
<beans:bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<beans:property name="entityManagerFactory" ref="entityManagerFactory" />
</beans:bean>
<!-- Enables Transactions -->
<tx:annotation-driven proxy-target-class="true" />
<!-- Annotation config -->
<context:annotation-config/>
Si je commente cette partie:
<beans:property name="mappingResources"> <beans:list> <beans:value> classpath:queries.xml </beans:value> </beans:list> </beans:property>
Tout semble fonctionner très bien! ..autre que le fait que je ne peux pas utiliser mes requêtes maintenant, donc cela ne résout pas mon problème.
Voici la trace de la pile que je reçois quand je tente de lancer:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [com/slconnected/test/WarriorTests-context.xml]: Invocation of init method failed; nested exception is org.hibernate.boot.MappingException: Unable to resolve explicitly named mapping-file :
classpath:queries.xml
: origin(
classpath:queries.xml
)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1568)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:540)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:302)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:229)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:298)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:956)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:747)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:480)
at org.springframework.test.context.web.AbstractGenericWebContextLoader.loadContext(AbstractGenericWebContextLoader.java:132)
at org.springframework.test.context.web.AbstractGenericWebContextLoader.loadContext(AbstractGenericWebContextLoader.java:59)
at org.springframework.test.context.support.AbstractDelegatingSmartContextLoader.delegateLoading(AbstractDelegatingSmartContextLoader.java:108)
at org.springframework.test.context.support.AbstractDelegatingSmartContextLoader.loadContext(AbstractDelegatingSmartContextLoader.java:260)
at org.springframework.test.context.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:63)
at org.springframework.test.context.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:83)
at org.springframework.test.context.DefaultTestContext.getApplicationContext(DefaultTestContext.java:74)
at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:169)
at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:109)
at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:212)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:199)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:251)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:253)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:216)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:82)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:60)
at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:67)
at org.junit.runners.ParentRunner.run(ParentRunner.java:292)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:162)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
Caused by: org.hibernate.boot.MappingException: Unable to resolve explicitly named mapping-file :
classpath:queries.xml
: origin(
classpath:queries.xml
)
at org.hibernate.boot.model.process.internal.ScanningCoordinator.applyScanResultsToManagedResources(ScanningCoordinator.java:213)
at org.hibernate.boot.model.process.internal.ScanningCoordinator.coordinateScan(ScanningCoordinator.java:81)
at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.prepare(MetadataBuildingProcess.java:98)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.<init>(EntityManagerFactoryBuilderImpl.java:200)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.<init>(EntityManagerFactoryBuilderImpl.java:150)
at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider$1.<init>(SpringHibernateJpaPersistenceProvider.java:49)
at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:49)
at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:341)
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:318)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1627)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1564)
... 40 more
ERROR: org.springframework.test.context.TestContextManager - Caught exception while allowing TestExecutionListener [or[email protected]31f924f5] to prepare test instance [[email protected]]
java.lang.IllegalStateException: Failed to load ApplicationContext
at org.springframework.test.context.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:91)
at org.springframework.test.context.DefaultTestContext.getApplicationContext(DefaultTestContext.java:74)
at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:169)
at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:109)
at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:212)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:199)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:251)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:253)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:216)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:82)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:60)
at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:67)
at org.junit.runners.ParentRunner.run(ParentRunner.java:292)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:162)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [com/slconnected/test/WarriorTests-context.xml]: Invocation of init method failed; nested exception is org.hibernate.boot.MappingException: Unable to resolve explicitly named mapping-file :
classpath:queries.xml
: origin(
classpath:queries.xml
)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1568)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:540)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:302)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:229)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:298)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:956)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:747)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:480)
at org.springframework.test.context.web.AbstractGenericWebContextLoader.loadContext(AbstractGenericWebContextLoader.java:132)
at org.springframework.test.context.web.AbstractGenericWebContextLoader.loadContext(AbstractGenericWebContextLoader.java:59)
at org.springframework.test.context.support.AbstractDelegatingSmartContextLoader.delegateLoading(AbstractDelegatingSmartContextLoader.java:108)
at org.springframework.test.context.support.AbstractDelegatingSmartContextLoader.loadContext(AbstractDelegatingSmartContextLoader.java:260)
at org.springframework.test.context.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:63)
at org.springframework.test.context.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:83)
... 25 more
Caused by: org.hibernate.boot.MappingException: Unable to resolve explicitly named mapping-file :
classpath:queries.xml
: origin(
classpath:queries.xml
)
at org.hibernate.boot.model.process.internal.ScanningCoordinator.applyScanResultsToManagedResources(ScanningCoordinator.java:213)
at org.hibernate.boot.model.process.internal.ScanningCoordinator.coordinateScan(ScanningCoordinator.java:81)
at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.prepare(MetadataBuildingProcess.java:98)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.<init>(EntityManagerFactoryBuilderImpl.java:200)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.<init>(EntityManagerFactoryBuilderImpl.java:150)
at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider$1.<init>(SpringHibernateJpaPersistenceProvider.java:49)
at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:49)
at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:341)
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:318)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1627)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1564)
... 40 more
Encore une fois, tout fonctionne parfaitement lors de l'exécution du projet normalement. C'est seulement quand je l'exécute comme un cas de test, ou quand j'arrive à la partie de test de la construction que j'obtiens cette erreur. Qu'est-ce qui se passe ici? Comment puis-je le faire fonctionner avec mon fichier query.xml externe pendant les tests unitaires?