当前位置: 首页 > news >正文

分享网站模板信和财富网站开发

分享网站模板,信和财富网站开发,穿山甲广告联盟,百度竞价做网站建设当您与开发人员讨论将对象映射到关系数据库时#xff0c;他们经常抱怨JPA性能差#xff0c;JPA提供程序的行为不可预测等。通常#xff0c;在对话的某些时候#xff0c;您会听到#xff1a; “让我们完全放弃这项技术#xff0c;我们在上个月的会议上看到了更好的东西。 … 当您与开发人员讨论将对象映射到关系数据库时他们经常抱怨JPA性能差JPA提供程序的行为不可预测等。通常在对话的某些时候您会听到 “让我们完全放弃这项技术我们在上个月的会议上看到了更好的东西。 我们将在我们的项目中使用它而不是JPA并从此以后快乐地开发它们。” - 听起来很熟悉 学习新技术没错事实上您应该不断地做下去以提高您的技能和知识但是当您遇到其中一种问题时您会选择一条通向另一种技术的简单途径还是会问自己 “我是吗 以正确的方式使用它” 让我们看一下JPA用法示例。 假设我们有简单的数据库映射到实体 而且我们必须显示所有员工姓名无论其雇主和部门如何。 没有比这容易的事了-简单的JPQL查询就能做到 select employee from Employee employee order by employee.name 许多开发人员在这一点上完成工作并与Friends一起庆祝他们生活中另一个成功的JPQL查询但是我们当中有些人感到这种奇怪的感觉即有些令人毛骨悚然的东西潜伏在光亮的表面之下。 JPA提供程序例如Hibernate产生的SQL查询将揭示事实 select [...] from EMPLOYEE employee0_ order by employee0_.EMPLOYEE_NAMENothing special, so far , but here comes the naked truth:select [...] from DEPARTMENT department0_ left outer join EMPLOYER employer1_ on department0_.EMPLOYER_IDemployer1_.EMPLOYER_ID where department0_.DEPARTMENT_ID?select [...] from EMPLOYER employer0_ where employer0_.EMPLOYER_ID?select [...] from DEPARTMENT department0_ left outer join EMPLOYER employer1_ on department0_.EMPLOYER_IDemployer1_.EMPLOYER_ID where department0_.DEPARTMENT_ID?select [...] from DEPARTMENT department0_ left outer join EMPLOYER employer1_ on department0_.EMPLOYER_IDemployer1_.EMPLOYER_ID where department0_.DEPARTMENT_ID?select [...] from DEPARTMENT department0_ left outer join EMPLOYER employer1_ on department0_.EMPLOYER_IDemployer1_.EMPLOYER_ID where department0_.DEPARTMENT_ID? 有没有搞错 这些查询是什么 –好吧原因在于ManyToOne批注的默认访 存属性值即EAGER 。 我的数据库包含2个雇主其中一个拥有4个部门而第二个则没有。 加载Employee时默认情况下JPA提供程序会加载所有EAGER关联在我们的示例中是Department和Employer因此我们还有其他查询。 如上所示JPA提供者足够聪明可以在可能的情况下立即加载雇主和部门。 您刚刚发现了神奇的JPQL查询可一次获取所有数据库内容 。 这种情况会让您想起过去的事情吗 我们对于它可以做些什么呢 –我的朋友您所需要的只是懒惰–除非真正需要否则不要使用EAGER 请记住 ManyToOne和OneToOne注释默认使用它。 此时您可能称我为疯子或懒惰极端主义者并问您是否遇到过LazyInitializationException 兄弟 您是否听说过延迟加载问题的所有麻烦 性能下降等。。。我当然这样做了但是您不认为如果我们在JPA方面遇到麻烦也许我们会以错误的方式使用它 我们通常在Web应用程序中所做的是在UI上呈现或编辑一些数据并且通常只是特定实体属性的一小部分。 要做到这一点需要从数据库中获取实体树–我们不知不觉中就问实体管理器给我所有员工按名称排序以及所有相关实体然后抱怨性能下降 我们不在乎从数据库中获取什么因为实体管理器将为我们完成驴工作。 我们得到LazyInitializationException 那么 我们将以“视图”模式使用“打开实体管理器”并消除此愚蠢的异常 休息一下 你不认为这是一个死胡同吗 –现在该改变一些东西了。 您可以在项目中使用复杂的方法例如CQRS 以及JPA中已经存在的可能性这些方法可以帮助您更改本文中我描述的不良方式。 甜点的几个链接 CQRS信息 马丁·福勒Martin Fowler关于CQRS的文章 参考 JPA –我应该成为懒惰的极端主义者吗 来自我们的JCG合作伙伴 Michal Jastak来自Warlocks Thoughts博客。 翻译自: https://www.javacodegeeks.com/2013/05/jpa-should-i-become-a-laziness-extremist.html
http://www.yutouwan.com/news/400832/

相关文章:

  • 网站开发合同 doc怎么自己做视频网站
  • 网站开发就业培训班免费红色ppt模板下载
  • 品牌网站建设的意义网站建设常规尺寸
  • 老徐蜂了网站策划书北京网络优化公司
  • 建站哪家好 discuz郑州那家做网站便宜
  • 网站关键字 怎么设置网站建设研究方法
  • 莆田建设局网站wordpress新建字段
  • 课程微网站开发技术wordpress4.4.1
  • 简述织梦网站上传步骤有什么做公众号封面图的网站
  • 做毕业设计哪个网站好应用软件开发包括什么
  • 松江外贸网站建设WordPress恶意扫描
  • 正在建设中的网站可算违规阿里云域名
  • 网站开发需要的软件德尔普网络做网站怎么样
  • 宿迁市建设局网站360建筑网怎么找回密码
  • 个人网站建设的流程怎么用dw做可上传文件的网站
  • 网站需求分市场推广渠道有哪些
  • 网站设计目标与背景互联网网站如何做流量统计
  • 推荐昆明做网站建设怎么仿别人的网站
  • 雄安建设工程信息网站旅游网站开发与建设论文
  • 学校网站首页制作中山网站建设多少钱
  • 网站被做跳转怎么办行业网站建设多少钱
  • 请人做网站 说我要求多建筑施工企业
  • 罗湖商城网站设计多少钱做外链的网站
  • 广州工信部网站查询网站为什么上传不了图片
  • 做招聘网站赚钱么做文学网站编辑的前景
  • 网站建设需要的资质wordpress谁开发的
  • 大连公司网站开发山东省住房和建设厅注册中心网站
  • 甘肃建设厅官方网站东圃做网站
  • 河源市网站建设公司wordpress官方中文主题
  • 办公设备网站推广怎么做wordpress调节宽度