Spring整合Hibernate之AnnotationSessionFactoryBean与LocalSessionFactoryBean
1、继续使用Hibernate的映射文件*.hbm.xml
2、使用jpa形式的pojo对象, 去掉*.hbm.xml文件
一、继续使用Hibernate的映射文件*.hbm.xml
此时Spring的配置文件中的SeesionFactory需要使用org.springframework.orm.hibernate.LocalSessionFactoryBean
- <bean id="sessionFactory"
- class="org.springframework.orm.hibernate.LocalSessionFactoryBean">
- <property name="dataSource" ref="dataSource" />
- <property name="hibernateProperties">
- <props>
- <prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>
- <prop key="hibernate.show_sql">true</prop>
- <prop key="hibernate.format_sql">true</prop>
- </props>
- </property>
- </bean>
LocalSessionFactoryBean可以用如下几个属性来寻找*hbm.xml文件
mappingResources、mappingLocations、mappingDirectoryLocations与mappingJarLocations
1、mappingResources:指定classpath下具体映射文件名
- /**
- * Set Hibernate mapping resources to be found in the class path,
- * like "example.hbm.xml" or "mypackage/example.hbm.xml".
- * Analogous to mapping entries in a Hibernate XML config file.
- * Alternative to the more generic setMappingLocations method.
- * <p>Can be used to add to mappings from a Hibernate XML config file,
- * or to specify all mappings locally.
- * @see #setMappingLocations
- * @see org.hibernate.cfg.Configuration#addResource
- */
- public void setMappingResources(String... mappingResources) {
- this.mappingResources = mappingResources;
- }
src根目录下的example.hbm.xml文件
- <property name="mappingResources">
- <value>example.hbm.xml </value>
- </property>
src/mypackage目录下的example.hbm.xml文件
- <property name="mappingResources">
- <value>mypackage/example.hbm.xml</value>
- </property>
2、mappingLocations,可以指定映射文件的路径,可以指定classpath路径下和其他文件夹下的映射文件
- /**
- * Set locations of Hibernate mapping files, for example as classpath
- * resource "classpath:example.hbm.xml". Supports any resource location
- * via Spring's resource abstraction, for example relative paths like
- * "WEB-INF/mappings/example.hbm.xml" when running in an application context.
- * <p>Can be used to add to mappings from a Hibernate XML config file,
- * or to specify all mappings locally.
- * @see org.hibernate.cfg.Configuration#addInputStream
- */
- public void setMappingLocations(Resource... mappingLocations) {
- this.mappingLocations = mappingLocations;
- }
指定WEB-INF/mappings目录下的example.hbm.xml映射文件文件
- <property name="mappingLocations">
- <value>WEB-INF/mappings/example.hbm.xml </value>
- </property>
- </pre><pre>
指定classpath下的example.hbm.xml映射文件
- <property name="mappingLocations">
- <value>classpath:example.hbm.xml </value>
- </property>
也可以使用*作为通配符
3、mappingDirectoryLocations,指定包含映射文件的文件夹的目录
- /**
- * Set locations of directories that contain Hibernate mapping resources,
- * like "WEB-INF/mappings".
- * <p>Can be used to add to mappings from a Hibernate XML config file,
- * or to specify all mappings locally.
- * @see org.hibernate.cfg.Configuration#addDirectory(java.io.File)
- */
- public void setMappingDirectoryLocations(Resource... mappingDirectoryLocations) {
- this.mappingDirectoryLocations = mappingDirectoryLocations;
- }
包含WEB-INF/mappings目录下的所有*hbm.xml映射文件
- <property name="mappingDirectoryLocations">
- <list>
- <value>WEB-INF/mappings</value>
- </list>
- </property>
也可以通过classpath来指出,此处包含classpath路径下的hbm包下的所有*.hbm.xml文件
- <property name="mappingDirectoryLocations">
- <list>
- <value>classpath:hbm/</value>
- </list>
- </property>
4、mappingJarLocations ,指定加载的映射文件在jar文件中
- /**
- * Set locations of jar files that contain Hibernate mapping resources,
- * like "WEB-INF/lib/example.hbm.jar".
- * <p>Can be used to add to mappings from a Hibernate XML config file,
- * or to specify all mappings locally.
- * @see org.hibernate.cfg.Configuration#addJar(java.io.File)
- */
- public void setMappingJarLocations(Resource... mappingJarLocations) {
- this.mappingJarLocations = mappingJarLocations;
- }
例如:
- <property name="mappingDirectoryLocations">
- <value>WEB-INF/lib/example.hbm.jar</value>
- </property>
- </pre><p></p><p><span style="line-height:30px"><span style="line-height:21px"><span style="font-family: FangSong_GB2312; font-size: 18px;"></span></span></span></p><p></p><p>二、使用jpa形式的pojo对象, 去掉*.hbm.xml文件</p><p>此时Spring的配置文件中的SeesionFactory需要使用<span style="color:rgb(255,0,0);">org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean</span></p><p>AnnotationSessionFactoryBean中查找jpa注解形式的pojo映射对象的属性有:annotatedClasses、packagesToScan</p><p>1、annotatedClasses:指定classpath下指定的注解映射实体类的类名</p><p><pre name="code" class="java">/**
- * Specify annotated classes, for which mappings will be read from
- * class-level annotation metadata.
- * @see org.hibernate.cfg.AnnotationConfiguration#addAnnotatedClass(Class)
- */
- public void setAnnotatedClasses(Class<?>... annotatedClasses) {
- this.annotatedClasses = annotatedClasses;
- }
- <property name="annotatedClasses"> <list> <value>com.anyview.entities.ClassTable</value> <value>com.anyview.entities.ClassStudentTable</value> </list> </property>
2、 packagesToScan指定映射文件的包名
- /**
- * Specify packages to search using Spring-based scanning for entity classes in
- * the classpath. This is an alternative to listing annotated classes explicitly.
- * <p>Default is none. Specify packages to search for autodetection of your entity
- * classes in the classpath. This is analogous to Spring's component-scan feature
- * ({@link org.springframework.context.annotation.ClassPathBeanDefinitionScanner}).
- */
- ublic void setPackagesToScan(String... packagesToScan) {
- this.packagesToScan = packagesToScan;
- <property name="packagesToScan" value="com/anyview/entities/"></property></strong></span>
Spring整合Hibernate之AnnotationSessionFactoryBean与LocalSessionFactoryBean的更多相关文章
- Spring框架学习(4)spring整合hibernate
内容源自:spring整合hibernate spring整合注解形式的hibernate 这里和上一部分学习一样用了模板模式, 将hibernate开发流程封装在ORM层提供的模板类Hiber ...
- Spring整合Hibernate报错:annotatedClasses is not writable or has an invalid setter method
Spring 整合Hibernate时报错: org.springframework.beans.factory.BeanCreationException: Error creating bean ...
- 【Java EE 学习 53】【Spring学习第五天】【Spring整合Hibernate】【Spring整合Hibernate、Struts2】【问题:整合hibernate之后事务不能回滚】
一.Spring整合Hibernate 1.如果一个DAO 类继承了HibernateDaoSupport,只需要在spring配置文件中注入SessionFactory就可以了:如果一个DAO类没有 ...
- spring整合hibernate的详细步骤
Spring整合hibernate需要整合些什么? 由IOC容器来生成hibernate的sessionFactory. 让hibernate使用spring的声明式事务 整合步骤: 加入hibern ...
- spring整合hibernate
spring整合hibernate包括三部分:hibernate的配置.hibernate核心对象交给spring管理.事务由AOP控制 好处: 由java代码进行配置,摆脱硬编码,连接数据库等信息更 ...
- Spring 整合 Hibernate
Spring 整合 Hibernate •Spring 支持大多数流行的 ORM 框架, 包括 Hibernate JDO, TopLink, Ibatis 和 JPA. •Spring 对这些 OR ...
- 使用Spring整合Hibernate,并实现对数据表的增、删、改、查的功能
1.1 问题 使用Spring整合Hibernate,并实现资费表的增.删.改.查. 1.2 方案 Spring整合Hibernate的步骤: 1.3 步骤 实现此案例需要按照如下步骤进行. 采用的环 ...
- Spring整合Hibernate详细步骤
阅读目录 一.概述 二.整合步骤 回到顶部 一.概述 Spring整合Hibernate有什么好处? 1.由IOC容器来管理Hibernate的SessionFactory 2.让Hibernate使 ...
- SSH整合之spring整合hibernate
SSH整合要导入的jar包: MySQL中创建数据库 create database ssh_db; ssh_db 一.spring整合hibernate带有配置文件hibernate.cfg.xml ...
随机推荐
- CI框架获取post和get参数 CodeIgniter
请参考:CI文档的输入类部分: $this->input->post() $this->input->get() ------------------------------- ...
- VS2015上又一必备免费插件:Refactoring Essentials
(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:Refactoring Essentials是一款用于代码分析和重构的开源免费VS20 ...
- Axure 全局辅助线(转)
普通辅助线作用于当前页 全局作用于所有页面 , 包括新建页面 创建普通辅助线直接拉出来 创建全局辅助线 , 在拉出来的时候按住 Ctrl 默认情况下 , 颜色不同 辅助线可以多选 , 用拖选 或 按 ...
- Android系统介绍与框架(转)
一.Andriod是什么? Android系统是Google开发的一款开源移动OS,Android中文名被国内用户俗称“安卓”.Android操作系统基于Linux内核设计,使用了Google公司自己 ...
- ArrayList和LinkedList的几种循环遍历方式及性能对比分析(转)
主要介绍ArrayList和LinkedList这两种list的五种循环遍历方式,各种方式的性能测试对比,根据ArrayList和LinkedList的源码实现分析性能结果,总结结论. 通过本文你可以 ...
- eclipse 常用快捷键及调试方法
原文链接:http://my.oschina.net/u/1054538/blog/741561 常用快捷键 Eclipse最全快捷键,熟悉快捷键可以帮助开发事半功倍,节省更多的时间来用于做有意义的事 ...
- 如何给你的ASP.NET页面添加HelpPage
如何给你的ASP.NET页面添加HelpPage 最近写了一些webAPI,所以需要搞一套API的帮助文档,google了一下,发现这是可以自动生成的,以下就是如何自动生成HelpPage的说明. 参 ...
- [导入]Eclipse 导入/编译 Hadoop 源码
http://www.cnblogs.com/errorx/p/3779578.html 1.准备工作 jdk: eclipse: Maven: libprotoc :https://develope ...
- 解读Web Page Diagnostics网页细分图
解读Web Page Diagnostics网页细分图 http://blog.sina.com.cn/s/blog_62b8fc330100red5.html Web Page Diagnostic ...
- LoadRunner如何监控Tomcat性能
使用LoadRunner做性能测试,一般的直觉是LR只能完成脚本录制和编写模拟用户的请求行为,但是在某些情况下,要监控一些中间件或web服务器的性能时,就不能通过录制脚本来完成了,那么就需要手工来编写 ...