Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我需要在hibernate配置文件中注册所有模型类吗_Java_Hibernate_Annotations - Fatal编程技术网

Java 我需要在hibernate配置文件中注册所有模型类吗

Java 我需要在hibernate配置文件中注册所有模型类吗,java,hibernate,annotations,Java,Hibernate,Annotations,假设我有许多模型类(实体类)。我需要在hibernate配置文件中逐个注册所有模型类吗 ... <mapping class="com.java.ent.Table"/> ... 。。。 ... 或者有任何注释标记为实体?对于中型应用程序,将有大量的表及其相应的模型实体。如何管理它?您可以按照说明中的说明,在注释配置中编写自己的集合包 或 另一个选项是使用通配符编写自定义AnnotationConfigurationWithWildcard,它扩展org.hibernate.c

假设我有许多模型类(实体类)。我需要在hibernate配置文件中逐个注册所有模型类吗

...
<mapping class="com.java.ent.Table"/>
...
。。。
...

或者有任何注释标记为实体?对于中型应用程序,将有大量的表及其相应的模型实体。如何管理它?

您可以按照说明中的说明,在注释配置中编写自己的集合包

另一个选项是使用通配符编写自定义AnnotationConfigurationWithWildcard,它扩展org.hibernate.cfg.AnnotationConfiguration并作为spring依赖项注入

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="configurationClass" value="org.hibernate.cfg.AnnotationConfigurationWithWildcard"/>
    <property name="configLocation" value="classpath:hibernate.cfg.xml"/>
</bean>


您可以使用更适合自己的方法。

还有另一种配置hibernate sessionFactory的方法,您实际上只能提供packageToScan

<bean id="sessionFactory"
        class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSource"></property>
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
                <prop key="hibernate.connection.useUnicode">true</prop><!-- added -->
                <prop key="hibernate.connection.characterEncoding">UTF-8</prop><!-- added -->
                <prop key="hibernate.connection.charSet">UTF-8</prop><!-- added -->

            </props>
        </property>

        <property name="packagesToScan">
            <list>
                <value>com.web.entities</value>
            </list>
        </property>
    </bean>

org.hibernate.dialogue.mysql5dialogue
真的
UTF-8
UTF-8
com.web.com实体

但正如我提到的,我必须在hibernate.cfg.xml中注册实体。如果我想正确回答你的问题,使用上面的解决方案,你只需要给出你所有实体所在的包,hibernate就会选择所有带注释的实体。在第二种方法中,您可以简单地添加一行通配符,如hibernate.cfg中的通配符。希望这能澄清。使用注释配置WithWildcard我得到的类找不到excp…也使用相同的excp。我正在使用Hibernate我不太了解Hibernate。问题是您是否愿意使用由Hibernate实现的JPA;在这种情况下,您不需要列出所有的类。在Hibernate文档中也强烈建议使用这种方法。