如何扫描Hibernate实体的包而不是使用hbm.xml?

我目前使用Spring 3.1和Hibernate 4通过扫描DAO和服务的包。有没有办法对标记为@Entity类执行相同的操作,而不是使用configLocation属性和hbm.xml文件?

       

  

将扫描模型包中的所有内容。 我使用cfg.xml包含show_sql和hb2ddl.auto等设置。

您可以在应用程序context.xml文件中执行此类操作来扫描所有注释类 –

      com.idc.scd.domain com.idc.scd.domain.dropdown com.idc.scd.domain.external com.idc.scd.domain.pk     org.hibernate.dialect.Oracle10gDialect ${hibernate.show_sql} ${hibernate.format_sql} ${hibernate.use_sql_comments} validate true after_statement net.sf.ehcache.hibernate.EhCacheProvider ${hibernate.cache.use_second_level_cache} ${hibernate.cache.use_structured_entries} ${hibernate.jdbc.fetch_size}    

您可以使用Spring的mappingLocations属性指定spring查找hibernate映射文件的位置。

  

希望这可以帮助。

简化,您可以在配置文件’spring-servlet.xml’中使用以下代码:

    classpath:hibernate.cfg.xml    ${jdbc.dialect} true     

注意:

  • “sessionFactory”中需要类AnnotationSessionFactoryBean
  • 属性“packagesToScan”带有带注释的类包(或包列表 – 请参阅Kumar的例子 – )