`
sdiablo
  • 浏览: 8131 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

hiebrnate有哪些沟壑--原作Qieqie

阅读更多
hiebrnate有哪些沟壑
1、Session是本次使用到的持久对象的容器,并内在使用jdbc的connection派发sql
2、Session的生命周期,不同的应用可能有不同的策略,是一次数据操作一个Session,或一个用户请求共享同一个Session?
后者可能使用到了Open Session In View Filter/Interceptor.或hibernate3的sessionFactory.getCurrentSession()
3、对象与容器的几种关系,以及如何转化?同样Id的对象是否可以有多个copy在容器中?
4、session flush是什么意思,什么时候会(自动)flush
5、load或object的many-to-one可能会用到proxy,这是什么意思?lazy-loading与此有关。
6、hibernate对集合的理解和处理
7、hibernate对cascade的理解和处理
。。。

hibernate有哪些局限:1、session是一个容器,一次session装载过多object,会爆棚=>解决之道:evict, bulk operation
2、session总是装载一个对象的所有属性列,如果该属性数目够大(>50),会对性能有所影响=>解决之道:对类或表列进行适当分拆
3、session默认总是对持久对象建立snapshot,所以1个对象将占用2倍的空间。=>一般这个不造成问题,除非是以上 1 的情况
。。。

hibernate"奇怪"的地方
1、save/perist一个对象时,为什么有的对象立即发送一个insert语句,有的不是:
这和主建策略有关,程序自己assign的主键,hibernate不会立即发送insert,其他的会

2、设置了join策略,但对query查询无效
对对象的某个to-one的属性设置join策略只load/get或nav到该对象时有效,query查询无效,哪怕该查询只返回一个对象。

3、修改对象时候,为什么抛出错误:
在Session的生命周期内,已经被Session管理的对象的数据库更新语句会自动被hibernate检测在必要的时候发送。
所以,程序没有必要调用dao.update/object.update(in active record pattern)的方法。如果调用了dao.update方法,则会抛出该错误。

4、那为什么同样的程序我调用就是错误,别人update就可以调用,而且必须调用才会更新到数据库?
那是因为“别人”的session周期很短,和“我自己”使用的Session周期策略不一样,他调用update时所使用的session已经不是前一句load/get/query该对象后的session。
也有可能是“别人”update的对象和刚才load/get/query出来的对象是同一个对象(==返回true),此时update方法是多余的,但是调用了也不会发生错误(update的意思是:将一个还没有被给定session管理的detached对象交给session管理,但是如果该对象本来已经被session管理了,session也不会抛出错误)
5、不想更新某个数据,但是hibernate却自动给我更新到数据库,真是想不到:
一个对象如果被Session管理(之前从session load/get/query出来或该对象被update到session后),如果该对象的属性变更了,这会被hibernate检测到,会自动被派发update sql,所以不要去更新他的值,如果本意不是要把“更新持久化”到数据库的话。
。。。

小心:
二级缓存 总是要特别的注意,这是一个大策略,不是API级别的决定。


以上观点均被本人实践过,也仅为片面摘要。
分享到:
评论

相关推荐

    qieqie.zip_signal set

    含噪脉冲信号进行相关检测,一个师兄的毕设,雅克比迭代求解线性方程组课设。

    CCD式铆合测定机保养说明书.doc

    CCD式铆合测定机保养说明书

    IOS操作系统开发/调试的案例

    IOS操作系统开发/调试的案例 iOS操作系统开发和调试是一个复杂但非常有趣的过程。下面是一个简单的iOS应用开发案例,展示了如何使用Swift和Xcode开发一个基本的iOS应用,并进行调试。

    【精美排版】基于STCC单片机的简易电子琴.doc

    单片机

    【精品】毕业设计:单片机模拟交通灯设计.doc

    单片机

    ATM系统需求说明书.doc

    ATM系统需求说明书

    线性离散系统的Z变换分析法-2

    线性离散系统的Z变换分析法的后续部分,计算机控制系统知识

    DF8B机车32位微机控制柜使用维护说明书.doc

    说明书

    ip2region.xdb

    ip2region.xdb

    IBM业务流程和运营决策管理产品词汇表中英文

    IBM业务流程和运营决策管理产品词汇表,包含中英文词汇,官方文档。

    【精美排版】基于单片机ATC电子琴课程设计.doc

    单片机

    数据挖掘与数据分析应用案例 数据挖掘算法实践 基于Python的数据挖掘在超市中的应用与分析.doc

    由于超市所面对的竞争环境越来越严峻,使得很多超市的管理人员和决策人员逐渐的认识到超市在信息时代要想获得更好的发展空间,数据支持是一项必不可少的手段,尤其是近10年来商品条码技术、收银POS系统等在超市中广泛运用,这为超市企业积累了大量的销售以及库存等方面的数据,这为超市的数据分析提供了很庞大的数据资源,由于以往超市很少对这些数据资源进行完整的分析和应用,使得超市在进货选择的类型、数量、厂家等都有一定的盲目性,同时对顾客的购买行为、购买趋势以及客户的关系没有进行透彻分析和研究,导致这些方面都基本缺乏较为科学的数据进行支持,这对提高超市核心竞争力和超市以后的发展极为不利。当人们逐渐认识到数据支持对于超市发展的作用和意义,他们也认识到在21世纪信息时代要想在如此激烈的竞争中占取有利的地位,得到最大的利润,必须要充分的利用好网络计算机信息技术、数据技术等,更深层次的去挖掘和分析以往的所有数据以及相关的数据的关系,从中提取对超市发展有利的核心决策数据,再根据决策数据来制定出相应的决策,最终使超市能够可持续的发展。

    基于Bootstrap实现的完全响应式后台管理模板页面,多平台自动适应

    基于Bootstrap实现的完全响应式后台管理模板页面,多平台自动适应,亲测完整。

    电力变压器保护毕业设计.doc

    变压器

    图论的思维导图-复习.xmind

    图论的思维导图-复习.xmind

    小米的声音世界-声音基础模型如何推动声音理解和生产

    1. 小米为什么做AI声学语音 小米的发展战略是“软件+硬件”结合AI,构建人车家全生态。 小米拥有庞大的硬件基础,包括智能手机、汽车、IoT设备等,需要AI声学语音技术来提升用户体验。 2. AI声学语音的技术和应用 小米已经建立了完善的声学语音算法体系,涵盖语音交互、拾音降噪、声音情境感知、视觉抠音、跨设备声纹识别等技术。 小爱同学作为语音交互平台,拥有庞大的用户群体和应用场景。 3. 声音基础模型赋能声学语音 小米提出了“声音基础模型”的概念,并以Xiaomi Dasheng为例进行介绍。 Xiaomi Dasheng是一个深度音频信号整体嵌入模型,拥有1.2B参数和27万小时的训练数据。 声音基础模型可以应用于多种场景,例如: SCAR (Sound Component Analysis & Reconstruction):提取视频中的语音和环境音,实现声音橡皮擦功能。 大模型语音合成:实现更自然、流畅的语音合成效果。 Unified Model:将语音识别和语音合成模型统一,提升效率和效果。 小米通过AI声学语音技术和声音基础模型,不断提升用户体验,并探索更多应用场景

    使用hadoop进行数据分析.pdf

    Hadoop 是一个分布式系统框架,它允许使用简单的编程模型跨大型集群进行大数据的存储和处理。以下是如何使用 Hadoop 进行数据分析的基本步骤: 环境准备: 1.安装 Hadoop 集群。这通常包括 NameNode、DataNode、ResourceManager、NodeManager 等角色。 2.配置 Hadoop 环境,包括 Hadoop 配置文件(如 core-site.xml, hdfs-site.xml, yarn-site.xml, mapred-site.xml 等)。 3.确保集群中的节点之间可以相互通信。 数据上传: 1.使用 Hadoop 的分布式文件系统(HDFS)将数据上传到集群中。你可以使用 hadoop fs -put 命令将本地文件或目录上传到 HDFS。 数据预处理: 1.如果数据需要清洗、转换或整合,可以使用 Hadoop 的 MapReduce 编程模型或其他工具(如 Apache Pig、Hive 等)进行预处理。 2.MapReduce 允许你编写两个函数:Mapper 和 Reducer,以处理数据并产生结果。 数据分析: 1.Map

    source+insight使用技巧.txt

    source+insight使用技巧

    应用密码学课题研究.docx

    ssl的应用与原理

    ERAC192khz至768khz

    本次对ERAC格式进行了升级,目前可以支持1536khz的wav音频压缩。超过384khz不提供播放。实际播放效果以声卡限制为准,目前只能通过PowersShell和CMD使用。

Global site tag (gtag.js) - Google Analytics