scr*_*avy 37 java jpa jar persistence.xml maven
在工作中,我们有一个实体库,由几个客户端用于库(几个servlet,一个桌面应用程序等).实体库由JPA-Annotated类组成,最突出的是persistence.xml.
所有项目都使用maven配置.
应该在哪里放置persistence.xml文件?它需要位于该实体库的jar文件中,我不知道如何使用maven配置它.
(我们只是将一个项目分成几个较小的项目)
'''UPDATE'''要清楚这一点,有一个Maven-Project A包含persistence.xml,另一个(B)依赖于该Project.我把persistence.xml放在A中的src/main/resources/META-INF/persistence.xml中,当试图在A里面使用一个EntityManager时,没问题,insidie B:没什么用.
EclipseLink提供以下警告:
[EL Warning]: The collection of metamodel types is empty. Model classes may not have been found during entity search for Java SE and some Java EE container managed persistence units. Please verify that your entity classes are referenced in persistence.xml using either <class> elements or a global <exclude-unlisted-classes>false</exclude-unlisted-classes> element
Run Code Online (Sandbox Code Playgroud)
我怀疑找不到persistence.xml,但它存在于目标jar中.
mab*_*aba 77
正如@Dave上面提到src/main/resources的那样.说到persistence.xml它应该放在META-INF文件夹中.总结如下:src/main/resources/META-INF/persistence.xml.
J S*_*ick 12
放置在WEB-INF/classes/META-INF时,我只有persistence.xml才能在我的WAR中工作,就像文档建议的那样:
http://docs.oracle.com/cd/E19159-01/819-3669/bnbrj/index.html声明如下:
如果将持久性单元打包为WAR文件中的一组类,则persistence.xml应位于WAR文件的WEB-INF/classes/META-INF目录中.
在我的Eclipse项目道具中,我将其添加到构建路径:
src\main\resources
我的Maven项目在以下位置有persistence.xml:
src\main\resources\META-INF\persistence.xml
运行后Maven clean install,构建一个WAR:
WEB-INF\classes\META-INF\persistence.xml
当我将此WAR放入Tomcat 7的webapps文件夹时,它已正确部署并且JPA正常工作.
| 归档时间: |
|
| 查看次数: |
54720 次 |
| 最近记录: |