问题
我有非常简单的persistance.xml文件:
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_1_0.xsd”>
pl.michalmech.eventractor.domain.User
pl.michalmech.eventractor.domain.Address
pl.michalmech.eventractor.domain.City
pl.michalmech.eventractor.domain.Country
它的工作原理。
但当我删除elements时,应用程序看不到实体(所有类都注明了@Entity)。
有没有自动机制扫描2,350401781类?
#1 热门回答(75 赞)
persistence.xml有一个可以使用的jar-file。 Fromthe Java EE 5 tutorial:
该单位管理订单和客户。
它不依赖于任何特定于供应商的功能而且可以
因此可以部署到任何持久性提供程序。
描述>
JDBC / MyOrderDB JTA – 数据 – 源>
MyOrderApp.jar 罐文件>
com.widgets.Order 类>
com.widgets.Customer 类>
持久性单元>
持久>
此文件定义名为OrderManagement的持久性单元,该单元使用支持JTA的数据源jdbc/MyOrderDB。 jar-file和classelements指定托管持久性类:实体类,可嵌入类和映射的超类。 305205208element指定对包含托管持久性类的打包持久性单元可见的JAR文件,而classelement明确命名托管持久性类。
**编辑:**实际上,如果你不介意不符合规范,即使在Java SE中,Hibernate也支持自动检测。为此,请添加hibernate.archive.autodetection属性:
#2 热门回答(40 赞)
InJava SE环境,根据规范,你必须指定已完成的所有类:
必须在Java SE环境中指定所有命名的托管持久性类的列表,以确保可移植性
和
如果不打算将持久性单元的根中包含的带注释的持久性类包含在持久性单元中,则应使用exclude-unlisted-classes元素。 exclude-unlisted-classes元素不适用于Java SE环境。
(JSR-000220 6.2.1.6)
在Java EE环境中,当提供程序为你扫描注释时,你没有这样做。
非正式地,你可以尝试在persistence.xml中设置setfalse。此参数默认为EE中的false和SE中的true。到目前为止,EclipseLink和Toplink都支持这个。但如上所述,根据规范,你不应该依赖它在SE工作。
你可以尝试以下操作(在SE环境中可能有效,也可能无效):
false
#3 热门回答(14 赞)
我是否需要persistence.xml中的Class元素?
不,你不一定。以下是在Eclipse中执行此操作的方法(Kepler测试):
右键单击该项目,单击Properties,selectJPA,inPersistence class managementtick自动发现带注释的类。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/36468.html