[英]Persistence.xml can't find hbm.xml
我有一個用於集成測試的persistence.xml
文件,因此位於src/test/resources/META-INF/
中。 它看起來像這樣:
<?xml version="1.0" encoding="utf-8"?>
<persistence 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"
version="2.0">
<persistence-unit name="mysql-test"
transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<class>com.blabla.model.User</class>
<properties>
<property name="javax.persistence.jdbc.driver" value="com.mysql.cj.jdbc.Driver" />
<property name="javax.persistence.jdbc.user" value="mysql" />
<property name="javax.persistence.jdbc.password" value="mysql" />
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:${db.port}/dbname" />
<property
name="javax.persistence.schema-generation.database.action" value="drop-and-create" />
<property name="javax.persistence.sql-load-script-source" value="data.sql" />
</properties>
</persistence-unit>
</persistence>
I also have a User.hbm.xml
file located in com.blabla.model
for hibernate xml mapping. 當我嘗試執行測試(位於src/it/java/com.blabla/
文件夾中)時,出現以下錯誤:
java.lang.IllegalArgumentException: Unknown entity: com.blabla.model.User
at org.hibernate.internal.SessionImpl.firePersist(SessionImpl.java:808)
at org.hibernate.internal.SessionImpl.persist(SessionImpl.java:789)
...
我認為問題與由於某些原因無法找到hbm.xml
文件這一事實有關。 因為如果我嘗試移動:
將hbm.xml
文件放到src/test/resources/META-INF/
文件夾中,然后一切正常。 但是我不喜歡這個解決方案,因為我希望能夠為需要訪問相同hbm.xml
文件的生產添加另一個persistence.xml
。
到src/main/resources/META-INF/
的persistence.xml
再次起作用。 但這對我也不好,因為正如我所說,我希望我們能夠為生產添加另一個持久性文件。
有任何想法嗎? 謝謝。
注意:我沒有使用 Spring 引導。
最后,我發現了一個似乎可以按我的意願工作的配置。 我已經定位:
persistence.xml
用於在src/test/resources/META-INF/
進行測試,hbm.xml
映射文件位於src/main/resources/META-INF/
, 同樣在我添加的測試的persistence.xml
中:
...
<persistence-unit name="mysql-test" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<mapping-file>/META-INF/User.hbm.xml</mapping-file>
<class>com.blabla.model.User</class>
<exclude-unlisted-classes>true</exclude-unlisted-classes>
<properties>
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.