重新用strtus spring hibernate重构PetStroe案例.规化了一下数据库,里面用到了太多的联级.对于像我一样的新手来说,可能在设计的时候会遇到一些麻烦
比如会问:如何在数据库中进行联级,是否需要在数据库中联级,在hibernate配置文件中进行联级好还是在数据库中进行联级好?如何在hibernate配置文件中进行联级?等等
不管你是什么水平,相信你都发问过.那么现在我以一个新手的视角来谈谈自已的一些看法.希望有不对的地方,请高手们留下您的脚印.
首先.大项目中联级操作是肯定会用到的,但大公司开发的时候一般用一些数据模型软件直接生成数据库文件.因为这个我没用过,所以不清楚是否将所有的联级都在数据库中生成.我在网上问了一些朋友及自己的一些看法总结得出是,只有特别重要的字段才进行联级,也就是建立外键.原因是如果所有关联数据都进行了关联,使得维护变得困难.
那么不是所有的关联都在数据库中配置,固然是在hibernater配置文件中配置.而且必须将所有的关联都进行配置.
如何进行配置呢,最简单也是最有效的方法是,您首先得有一副全局E-R模型.标示出对应的关系,在配置时除了基本的数据项以外,还必须将这些关系写进去.
至于如何在hiberntae配置中进行联级,这里就不说了,我也说不好,太复杂,不会的朋友有必要去查查相关资料,这里简单说一下需要注意的地方:
1.对象关联关系有一对一,多对一,一对多和多对多,其中多对一和一对多关系比较常见,一对一关系有两种方式:以关键盘关联和以外键关联,一对多和多对一通常应设置为双向关联,并在"一"之一方设置iverse="true".
将一对多的关联映射,定义成双向一对多关联,并且避免能过一的那端控制关联关系有最好的性能表现.
多对多需要第三张表来保存两个实体之间的关系.
2.hibernate检索策略有产即检索,延迟检索,预先检索,批量立即检索和批量延迟检索.对于末端为"一"的关联,一般设置为预先抓取,对于末端为"多"的关联,一般设置为延迟检索.hibernater默认为此检索,用到的时候可以不写.
3.对于多对一的关联,可以关闭延迟加载,因为多个实体只对应一个实体,关闭延迟加载不会引起太多的性能下降,但对于一对多的关联,则不应该关闭延迟加载,如果关闭延迟加载,可能抓取一条主记录时,有百万条从记录随之初始化,这对性能的消耗非常大.所以对于文件中的set元素,则不可关闭延迟加载.
分享到:
相关推荐
JavaEE+项目案例+(代码+数据库)
基于lucene的开发JavaEE项目 基于lucene的开发JavaEE项目 基于lucene的开发JavaEE项目 基于lucene的开发JavaEE项目 基于lucene的开发JavaEE项目
一个简单的使用上传组件将Excel表格导入到数据库中,需要采用struts支持。完整WEB项目
JavaEE SSH 配置文件集合 本人仔细整理收集的 三大框架配置文件详解
JavaEE项目开发环境搭建以及配置:JDK1.7+破解的MyEclipse10+MySql5.5+Tomcat7.0
jeesite4JavaEE快速开发平台源码与数据库文件.zip
JavaEE项目开发脚手架(公众号:kaitao-1234567,《亿级流量网站架构核心技术》)
JavaEE项目光盘上的所有数据(代码+数据库),绝对物超所值
JavaEE软件开发模式
JavaEE项目中使用DB2数据库连接jar包,db2数据库完整jar包,好的话,下载给个好评,谢谢!
JavaEE期末大作业博客系统源码基于springboot和vue实现的前后端分离的博客系统源代码.zip 运行项目流程如下: 选择一个数据库执行 m_blog.sql 文件。 用 idea 打开 blog_demo ,更改配置文件 application.yml 中的...
管理端+客户端 登录日志导出 简单的增删改查 预订 采用了代理模式 原型模式 单例模式 等软件设计模式
用javaee编写的,用户可注册,登陆,以及留言,出现可将上述信息录入数据库
此乃 《精通JavaEE 项目案例》 一书 的 代码 和 数据库, 希望能对大家学习有所帮助,那本书 我买了,正在学习中,呵呵。
JAVAEE期末项目总结报告.doc
Javaee 中文开发文档 适合于新手学习必备 英语差必备
javaee开发环境配置实验 Firstapp
1、 dbke是一个实际使用中的项目,可查看效果及功能,后台需要登录后才能使用(出于安全性考虑这里就不给大家介绍了)。 2、此项目整合了目前主流和最前源的web开发技术: 采用ehcache实现二级缓存(包含查询缓存)...
系统用户分为:借阅者(包括学生、教师及其他用户)、管理员Java EE开发期末课程设计图书管理系统源码+开发文档+数据库。系统用户分为:借阅者(包括学生、教师及其他用户)、管理员Java EE开发期末课程设计图书管理...
使用javaee实现的网上书店(包含数据库),基本增删改查操作。