hibernate 4 sessionfactory packagestoscan l'utilisation de la propriété

Nous avons une application web basée sur le Printemps 3.2.4 et Hibernate 4.2.3. Il a été généré à l'aide de la appfuse 2.2.1 archétype. Selon la documentation disponible, on peut utiliser la packagesToScan propriété de la SessionFactory dynamiquement ramasser les classes d'entité et de régler la sessionFactory. Cependant, nous sommes confrontés à un problème que nous avons à mentionner explicitement l'entité nom de la classe dans hibernate.cfg.xml pour qu'il soit reconnu par hibernate.
Je ne pouvais pas trouver toutes les réponses sur les forums, donc de poster ici. Il se peut que ma compréhension de la façon dont cela fonctionne est peut-être incorrect, de sorte que tous les pointeurs sont les bienvenus.

Grâce

applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans -- namespace declarations here
       default-lazy-init="true">
     <!-- Activates scanning of @Autowired -->
     <context:annotation-config/>
     <!-- Activates scanning of @Repository and @Service -->
     <context:component-scan base-package="com.xyz"/>
</beans>

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>

applicationContext-dao.xml

<?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>

Company.java

 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
 }
Qui @Entity annotation utilisez-vous?
import javax.la persistance.De l'entité;
Avez-vous essayé sans le hibernate.cfg.xml. Si vous avez eu avant (vide) qui pourraient annuler le numérisés entités. Je me demandais pourquoi il y a un @Component sur votre entité, qui n'a pas vraiment de sens.

OriginalL'auteur Pragmatic | 2013-12-18