我有一个非常简单的persistance.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0"
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">
<persistence-unit name="eventractor" transaction-type="RESOURCE_LOCAL">
<class>pl.michalmech.eventractor.domain.User</class>
<class>pl.michalmech.eventractor.domain.Address</class>
<class>pl.michalmech.eventractor.domain.City</class>
<class>pl.michalmech.eventractor.domain.Country</class>
<properties>
<property name="hibernate.hbm2ddl.auto" value="validate" />
<property name="hibernate.show_sql" value="true" />
</properties>
</persistence-unit>
</persistence>
而且有效。
但是,当我删除<class>
元素时,应用程序看不到实体(所有类都带有注释@Entity
)。
是否有自动扫描@Entity
类的机制?
jar-file
您可以使用persistence.xml 。从Java EE
5教程中
:
<persistence> <persistence-unit name="OrderManagement"> <description>This unit manages orders and customers. It does not rely on any vendor-specific features and can therefore be deployed to any persistence provider. </description> <jta-data-source>jdbc/MyOrderDB</jta-data-source> <jar-file>MyOrderApp.jar</jar-file> <class>com.widgets.Order</class> <class>com.widgets.Customer</class> </persistence-unit> </persistence>
该文件定义了一个名为的持久性单元OrderManagement
,它使用JTA感知数据源jdbc/MyOrderDB
。所述jar- file
和class
元素指定管持久类:实体类,可嵌入类和超类映射。该jar- file
元素指定JAR文件都包含持久化类管理的打包持久单元可见,而该class
元素明确命名持久化类管理。
对于Hibernate,请看第二章。也可以进行设置和配置以获取更多详细信息。
编辑: 实际上,如果您不介意不符合规范,则Hibernate即使在Java
SE中也支持自动检测。为此,添加hibernate.archive.autodetection
属性:
<persistence-unit name="eventractor" transaction-type="RESOURCE_LOCAL">
<!-- This is required to be spec compliant, Hibernate however supports
auto-detection even in JSE.
<class>pl.michalmech.eventractor.domain.User</class>
<class>pl.michalmech.eventractor.domain.Address</class>
<class>pl.michalmech.eventractor.domain.City</class>
<class>pl.michalmech.eventractor.domain.Country</class>
-->
<properties>
<!-- Scan for annotated classes and Hibernate mapping XML files -->
<property name="hibernate.archive.autodetection" value="class, hbm"/>
<property name="hibernate.hbm2ddl.auto" value="validate" />
<property name="hibernate.show_sql" value="true" />
</properties>
</persistence-unit>
问题内容: 我有一个非常简单的文件: 而且有效。 但是,当我删除元素时,应用程序看不到实体(所有类都带有注释)。 是否有自动扫描类的机制? 问题答案: 你可以使用 该文件定义了一个名为的持久性单元,它使用JTA感知数据源。所述和元素指定管持久类:实体类,可嵌入类和超类映射。该元素指定JAR文件都包含持久化类管理的打包持久单元可见,而该class元素明确命名持久化类管理。 对于,也可以进行设置和配置
谢谢你!
问题内容: 我正在使用Spring JPA和Hibernate的项目。可以在Spring applicationContext.xml 文件中指定 persistence.xml中的 大多数内容。 __ 那么是否还需要 persistence.xml ? 谢谢。 问题答案: 更新: Spring 3.1将支持免费的JPA配置,请参阅Spring 3.1 M2:配置增强 。 darioo的答案适合实
这是java类文件。 这是XSD文件。 我更改了属性的类型,如属性name=“x”type=“int”。我错误如下: 文件:/d:/maheshkumar.v/workspace/javaone/javaio/xsd/img.xsd无效原因:cvc-datatype-valid.1.2.1:“143.05”不是“integer”的有效值。 它不会在例外情况下显示元素名称。整数在哪里?它不指定'im
问题内容: 据我了解,使用a的“正确”方法是始终在退出块之前调用。像这样: 但是,我已经看到,没有它,代码就可以工作,甚至我从中也学会了使用它的答案 。所以我的问题是,是否必须使用它? 问题答案: 所以我的问题是,是否必须使用它? 为了进行交易而进行更新时必须使用。否则,事务管理器将发出并撤消所做的更改。 对于像您的示例这样的只读事务,无论有没有,我都认为没有实质性的区别。在这两种情况下,由事务管
问题内容: 我的代码是: 在文档中: InputStream的close方法不执行任何操作。 这是否意味着我不需要关闭InputStream? 问题答案: 您确实需要关闭输入Stream,因为您提到的方法返回的流实际上是FileInputStream或该文件的某个其他子类,该子类包含文件的句柄。如果不关闭此流,则可能会导致资源泄漏。