0

Hibernate (JPA) 是否有任何内置机制在启动时扫描 @Entity 注释的 bean。我试图避免为每个持久对象维护特定的“hbm”文件。

现在我有以下内容:

测试.java

@Entity
public class Test {
 ...
}

测试.hbm.xml

<hibernate-mapping package="domain">
    <class name="Test" table="test">
    ...
    </class>
</hibernate-mapping>
4

1 回答 1

0

您可以为每个 hbm 文件创建所有 @Entity bean,然后您可以删除所有 hbm 文件,因为休眠 JPA 将在启动时将每个 bean 映射到特定表

是的,它会在启动时映射,不用担心。

你可以做这样的事情

<persistence-unit name="myPetStorePU">
    <description>Petstore Persistence Unit</description>
    <provider>oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider</provider>

  <class>com.sun.javaee.blueprints.petstore.model.Tag</class>
  <class>com.sun.javaee.blueprints.petstore.model.SellerContactInfo</class>
  <class>com.sun.javaee.blueprints.petstore.model.Product</class>
  <class>com.sun.javaee.blueprints.petstore.model.Item</class>
  <class>com.sun.javaee.blueprints.petstore.model.Category</class>
  <class>com.sun.javaee.blueprints.petstore.model.Address</class>
  <class>com.sun.javaee.blueprints.petstore.model.ZipLocation</class>
    <properties>
        <property name="toplink.jdbc.driver" value="oracle.jdbc.driver.OracleDriver"/>
        <property name="toplink.jdbc.url" value="jdbc:oracle:thin:@#############"/>
        <property name="toplink.jdbc.user" value="####"/>
        <property name="toplink.jdbc.password" value="#####"/>
        <property name="toplink.logging.level" value="INFO"/>
    </properties>

</persistence-unit>

所有模型都是@Entity 类。

于 2013-02-12T13:22:04.800 回答