Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.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
Spring hibernate 4 sessionfactory包扫描属性用法_Spring_Hibernate_Sessionfactory - Fatal编程技术网

Spring hibernate 4 sessionfactory包扫描属性用法

Spring hibernate 4 sessionfactory包扫描属性用法,spring,hibernate,sessionfactory,Spring,Hibernate,Sessionfactory,我们有一个基于Spring3.2.4和Hibernate4.2.3的web应用程序。它是使用appfuse 2.2.1原型生成的。根据可用的文档,我们可以使用SessionFactory的packagesToScan属性动态拾取实体类并设置SessionFactory。然而,我们面临一个问题,我们必须在hibernate.cfg.xml中显式地提到实体类名,以便hibernate能够识别它。 我在论坛上找不到任何合适的答案,所以在这里发布。可能是我对其工作原理的理解不正确,所以欢迎任何指点 谢谢

我们有一个基于Spring3.2.4和Hibernate4.2.3的web应用程序。它是使用appfuse 2.2.1原型生成的。根据可用的文档,我们可以使用SessionFactory的packagesToScan属性动态拾取实体类并设置SessionFactory。然而,我们面临一个问题,我们必须在hibernate.cfg.xml中显式地提到实体类名,以便hibernate能够识别它。 我在论坛上找不到任何合适的答案,所以在这里发布。可能是我对其工作原理的理解不正确,所以欢迎任何指点

谢谢

applicationContext.xml

更改:

<property name="packagesToScan"><list><value>com.xyz.model</value></list></property>
com.xyz.model
致:



这对我很有用。

第二个属性packagesToScan指定Java包自动扫描带注释的实体类。这样就不再需要准备Hibernate映射文件。

您使用的是哪个
@Entity
注释?@m-deinum import javax.persistence.Entity;您是否尝试过不使用
hibernate.cfg.xml
。如果之前有(空),则可能会否决扫描的实体。只是想知道为什么在您的实体上有一个
@组件
,这是没有意义的。
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
 <hibernate-configuration>
    <session-factory>
       <mapping class="com.xyz.model.Address" />
       <mapping class="com.xyz.model.Company" />
       <mapping class="com.xyz.model.CompanyBilling" />
       <!-- BIG LIST OF MY ENTITY CLASSES -->
    </session-factory>
 </hibernate-configuration>
<?xml version="1.0" encoding="UTF-8"?>
<beans -- namespace declarations here
      default-lazy-init="true">
    <bean class="org.springframework.orm.hibernate4.HibernateExceptionTranslator"/>
    <bean class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor"/>
    <!-- Hibernate SessionFactory -->
    <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean" destroy-method="destroy">
        <property name="dataSource" ref="dataSource"/>
        <property name="configLocation" value="classpath:hibernate.cfg.xml"/>
        <property name="hibernateProperties">
            <props>
                 <prop key="hibernate.dialect">${hibernate.dialect}</prop>
                 <prop key="hibernate.query.substitutions">true 'Y', false 'N'</prop>
                 <prop key="hibernate.cache.use_second_level_cache">true</prop>
                 <prop key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop>
            </props>
        </property>
        <property name="packagesToScan"><list><value>com.xyz.model</value></list></property>
    </bean>
<!-- Transaction manager for a single Hibernate SessionFactory (alternative to JTA) -->
    <bean id="transactionManager"  class="org.springframework.orm.hibernate4.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory"/>
    </bean>
    <!-- Activates scanning of @Autowired -->
    <context:annotation-config/>
    <!-- Activates scanning of @Repository -->
    <context:component-scan base-package="com.xyz.dao"/>
</beans>
 package com.xyz.model;
 // imports
 @Entity
 @Table(name = "company")
 @SQLDelete(sql = "UPDATE company SET activeFlag = 0, lastupdated=now() WHERE id = ?")
 @Where(clause = "1=activeflag")
 @Component
 public class Company extends BaseEntity implements java.io.Serializable {
    // properties and getter setters
 }
<property name="packagesToScan"><list><value>com.xyz.model</value></list></property>
<property name="packagesToScan" value="com.xyz.model" />