Java src/test中persistence.xml中的类自动检测

Java src/test中persistence.xml中的类自动检测,java,jpa,persistence.xml,Java,Jpa,Persistence.xml,我在src/main/resources/META-INF/处有一个persistence.xml,在src/test/处有另一个persistence.xml。。。仅在数据库的值上不同: <properties> <property name="hibernate.archive.autodetection" value="class, hbm"/> <property name="hibernate.connect

我在src/main/resources/META-INF/处有一个persistence.xml,在src/test/处有另一个persistence.xml。。。仅在数据库的值上不同:

  <properties>
      <property name="hibernate.archive.autodetection" value="class, hbm"/>          
      <property name="hibernate.connection.url" value="jdbc:mysql://localhost/lanchecker-prod" />
然后:

<jar-file>C:\Users\Ian\git\LANchecker\src\main\java\biz\ianw\lanchecker\</jar-file>
(RouteCasbinFares是我尝试自动链接的类之一)


也许这项技术只能用于jar文件中的自动链接?

据我所知,我在这里尝试做的是不可能的

我提出的最佳解决方案是删除希望与persistence.xml不同的属性,在本例中:

<property name="hibernate.connection.url" value="jdbc:mysql://localhost/lanchecker-test" />   
然后,可以在运行时通过Spring注入实际的属性值。这涉及到将标准属性分离为persistence.xml,将不同的属性分离为spring.xml,在我看来,这是非常关键的


我得到的印象是,Spring Boot可能会提供一个更简单的解决方案,但代价是另一个框架。因此,目前,我的目标是上述内容。

这有帮助吗?看来就是这样了,谢谢。没找到,我的错。我应该删除这个问题吗?很高兴这有帮助。别担心这个问题,我把它标为重复的。管理员将决定是否删除它。嗨@Nicholas。结果证明这根本不起作用。我已经解释了上面的原因。对不起,我不确定。我刚刚做了一个快速搜索,以获得上述链接。我将arquillian用于测试一个web项目,它能够构建一个war文件进行测试。也许那样会有帮助,否则,我不知道。
Exception in thread "main" java.lang.ExceptionInInitializerError
...
Caused by: javax.persistence.PersistenceException: Unable to build entity manager factory
... 
Caused by: java.lang.IllegalArgumentException: Unable to visit JAR file:${PROJECT_LOC}/src/main/java/biz/ianw/lanchecker/. Cause: Illegal character in opaque part at index 6: file:${PROJECT_LOC}/src/main/java/biz/ianw/lanchecker/
<jar-file>C:\Users\Ian\git\LANchecker\src\main\java\biz\ianw\lanchecker\</jar-file>
Exception in thread "main" java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: RouteCabinFares is not mapped [select rcf from RouteCabinFares rcf]
<property name="hibernate.connection.url" value="jdbc:mysql://localhost/lanchecker-test" />   
Properties properties = new Properties();
properties.setProperty("hibernate.connection.url", "jdbc:mysql://localhost/lanchecker-test");  
EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("lanchecker", properties);