2022年spring+jpa框架搭建 .pdf

上传人:C****o 文档编号:39707507 上传时间:2022-09-07 格式:PDF 页数:7 大小:65.58KB
返回 下载 相关 举报
2022年spring+jpa框架搭建 .pdf_第1页
第1页 / 共7页
2022年spring+jpa框架搭建 .pdf_第2页
第2页 / 共7页
点击查看更多>>
资源描述

《2022年spring+jpa框架搭建 .pdf》由会员分享,可在线阅读,更多相关《2022年spring+jpa框架搭建 .pdf(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Hibernate 的作者目前在为EJB工作,EJB的实体 BEAN刚好被 JPA所代替。JPA的思想和Hibernate 中的思想极为相似,将普通Hibernate 升级为满足JPA规范的 ORM 也是非常方便的。使用 JPA的好处在于:JPA致力于建立ORM 的行业标准,大有一统天下的野心,况且也是 SUM公司的项目。将代码符合JPA规范,有利于移植到其它实现了JPA规范的 ORM 框架。在大型项目中与EJB配合,可以部署在分布式的应用中。Hibernate 使用 JPA的步骤:1、将繁琐的映射xml 文件由 JAVA注释代替。比如将 User 和 Organization 的映射 xml

2、 转换为注释(User 和 Role的多对多关系不考虑):User.hbm.xml 内容如下:Organization.hbm.xml 内容如下:名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 7 页 -改成注释形式如下:User 类:EntityTable(name=user010t)publicclass User IdGeneratedValue(strategy=GenerationType.IDENTITY)private Long id;Column(name=userID,unique=true,nullable=false)private String userI

3、D;Column(name=username,unique=false,nullable=false)private String username;Column(name=password,unique=false,nullable=false)private String password;名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 7 页 -ManyToOne(cascade=CascadeType.PERSIST,CascadeType.MERGE)JoinColumn(name=OrganizationID)private Organization organiza

4、tion;一系列的setter和 getter省略 Organization类如下:EntityTable(name=organization010t)publicclassOrganization IdGeneratedValue(strategy=GenerationType.IDENTITY)private Long id;Column(name=name,unique=false,nullable=false)private String name;OneToMany(mappedBy=organization,fetch=FetchType.LAZY)private Setusers

5、;部分成员变量以及一系列的setter和 getter省略 懂 XML 配置的话,这些注释应该很明白意思,不过多解释。不过有一点值得说明,inverse属性在注释中是没有的,它是默认为true 的,参考的对象则是相对于mappedBy 指定的对象。然后就可以将以前的映射xml 文件删除了。2、在 class文件夹下建立/META-INF/persistence.xml 文件,进行JPA的相关配置内容如下:org.hibernate.ejb.HibernatePersistence名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 7 页 -com.wu.myApplication.d

6、omain.Usercom.wu.myApplication.domain.Organization其他省略如果这里没有使用spring 的话,可以把数据库连接的相应信息配置进来。因为这里使用了spring 管理,所以配置在spring 中了。如果以后做分布式数据库,那么可以配置多个persistence-unit属性。transaction-type=RESOURCE_LOCAL支持 JTA事务管理和RESOURCE_LOCAL事务管理。如果用了EJB容器,如果做分布式应用的话,好像事务管理只能用JTA。这点不是太清楚,没有做过。class属性配置需要映射的类3、修改 application

7、Context.xml 内容如下:名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 7 页 -com.microsoft.sqlserver.jdbc.SQLServerDriver!-jdbc:sqlserver:/localhost:1433;DatabaseName=hbSystem-jdbc:sqlserver:/localhost:1433;SelectMethod=cursor;DatabaseName=myApplicationsa 1988125352!-名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 7 页 -其他省略 数据源的配置不变,Sessio

8、nFactory换成了LocalContainerEntityManagerFactoryBean而且必须注入HibernateJpaVendorAdapter不然在事务管理service 层的时候不起作用。采用注释的方式声明事务管理,在需要事务管理的方法前加注释,如下:TestTransactional(propagation=Propagation.REQUIRED,rollbackFor=Exception.class)publicvoiduserOrganizationSaveTest()名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 7 页 -方法内容省略注释中的 Propagation.REQUIRED 表示如果transactionManager没有开启事务则新建事务,否则用现有事务。注释中的rollbackFor=Exception.class表示抛出异常时回滚事务。如果使用了多个数据库,那么就必须使用AOP 的方式进行事务的管理。到此为止,不是分布式应用的spring+jpa(hibernate)的框架就搭建完成了。名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 7 页 -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁