`
SimonLei
  • 浏览: 176157 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

三天不学习,赶不上比安奇 之 Hibernate onPreUpdate

阅读更多

还是Hibernate,用了以前的代码,在实体 update 之前,使用 PreUpdateEventListener,

对实体当中的 lastModified 属性进行设置。这样,只要实体有 lastModified 属性,这个listener

就会自动的将它的最后更新时间给设置为最新的。

public boolean onPreUpdate( PreUpdateEvent event) {
    try {
        Object entity = event.getEntity();
        Method method = entity.getClass().getMethod( "setLastModified", Date.class);
        if ( method != null) method.invoke( entity, new Date());
    } catch ( Exception e) {
    }
}
 

话说这段代码也是很早以前写的,一直都没啥问题。

最近放到一个新项目当中,问题出来了。lastModified字段就一直没啥变化。

 

跟踪了一下,发现实体当中的lastModified字段确实改过来了,但是因为hibernate

做dirtyCheck之后,才会调用 preUpdate方法。也就是说,这个时候,光改 entity

的属性是不够的,还要想办法去改它的state,然后hibernate才会发现这个值已经发生了

变化。这个大概是因为dirtyCheck成本较高的缘故所发生的一个变化。于是代码改成:

 

public boolean onPreUpdate( PreUpdateEvent event) {
    try {
        Date date = new Date();
        Object entity = event.getEntity();
        Method method = entity.getClass().getMethod( "setLastModified", Date.class);
        if ( method != null) method.invoke( entity, date);

        String[] names = event.getPersisteer().getPropertyNames();
        for ( int i=0; i<names.length; i++) {
            if ( "lastModified".equals( names[i])) {
                event.getState()[i] = date;
                break;
            }
        }
    } catch ( Exception e) {
    }
}

果然是世界变化快啊。

0
1
分享到:
评论
1 楼 antitest 2011-02-11  

这是由于state更新了字段,而不是因为state修改了之后调用的update方法;

相关推荐

    比安奇宇宙学的泊松-李身份和对偶性

    我们研究了Bianchi宇宙学关于非半简单Bianchi群不变的一类特殊的Poisson-Lie T多元变换。 对于六维半阿贝尔马宁三元组$$ \ mathfrak {b} \ bowtie \ mathfrak {a} $$b⋈a包含Bianchi代数$$ \ mathfrak {b} $$ b,...

    2008年12月四级考试真题

    显然,斯特拉·比安奇在公园的遭遇引发了关于如何正确处理孩子间冲突和家长介入方式的讨论。在这个事件中,斯特拉选择了立即但温和地纠正孩子的行为,而另一位母亲则对此表示不满,认为斯特拉无权管教她的孩子。 ...

    宇宙如何以宇宙学和引力常数进化

    利用基本的时空截止time,我们研究了正规化和量化的爱因斯坦-卡坦引力场理论及其在重力计的紫外线不稳定定点gir≳0和紫外线稳定定点guv≈4/ 3的范围 耦合g =(4/3)G / GNewton。 因为量子引力场理论的基本算符是2维...

    论文研究 - 宇宙学中的局部性和全局性

    我们还表明,对于可以几何地解释为半径随时间变化的伪超球面的宇宙学模型,爱因斯坦场方程不足以完全描述该模型。 此外,还需要比安奇恒等式的微分方程组来描述宇宙的时间演化。 我们以de Sitter宇宙,管腔下宇宙和...

    online-learning:一些基本的在线学习算法

    在线学习算法 在专家建议下的在线学习环境中实施一些在线算法: 外部后悔最小化:指数加权平均预报员 内部后悔最小化:切萨·比安奇和卢戈斯减少了外部后悔最小化(第4章) 在线校准:通过内部后悔最小化 在线重新...

    非半简单群体的非阿贝尔T对偶

    我们针对非半简单组重新研究非阿贝尔T对偶性,众所周知,混合重力规异常会导致$$ \ sigma $$σ-模型是规模的,但不是Weyl不变的。 考虑到Elitzer,Giveton,Rabinovici,... 我们用比安奇时空来说明我们的发现。

    超流形配方中的DFT和群流形作为背景几何

    我们在QP之前的歧管上开发DFT的配方。 诸如截面条件和闭合约束之类的一致性条件由一个... 比安奇身份还具有比安奇之前的身份。 然后,通过使用协变的预QP流形来制定背景度量和连接。 给出了在群流形上的DFT分析的应用。

    高曲率Bianchi恒等式,广义几何和L∞代数

    超重力中的波速通量的比安奇恒等式可以接受更高的导数校正和弦校正,其中最著名的是异质理论dH =14α'(tr F2-tr R2)。 较少研究的是R4阶的修饰,例如在M理论紧缩的七种形式通量的Bianchi恒等式中。 我们认为,这样...

    Schwarzschild几何中的自发CPT破坏和费米子传播

    计算了度量上背景场期望值的相应后向反应,从而生成了一个一致的模型,用于描述伪黎曼几何学背景下违反CPT的效应。 发现广义相对论的比安奇恒等式和规范理论是相互一致的,并且与黎曼几何没有冲突。 这个事实在背景...

    传谷歌或收购社交平台Ning 后者估值1.5亿美元.docx

    Ning是一家专注于提供社交网络建设服务的公司,由马克·安德森和吉娜·比安奇尼共同创建。此次收购传闻表明谷歌可能在寻求扩展其在社交领域的影响力或获取Ning的特定技术和资源。 描述中提到,Ning正在与其他几家...

    关于Ⅱ类弦论非超对称有效作用的特殊极限

    利用非BPS散射幅度,我们不仅探索了在麸皮的横向和世界体积方向上都保持的几种比安奇身份,而且还揭示了各种新的耦合。 这些耦合仅可以通过考虑混合的回拉和泰勒耦合来找到,在这些混合耦合中还导出了它们所有阶数...

    dotfiles:个人配置文件

    马克·比安奇圆点文件 这是我组织和管理点文件的尝试。 在github上大量使用了其他工具。 我使用了一些方法,他提倡使用软件包。 在也有一些很好的在线资源。 我主要在Mac OS X上运行,有时在linux和cygwin上运行。 ...

    缓慢旋转的黑色三硼烷的扩散常数

    在本文中,我们采用缓慢旋转的黑色三菱形背景,并通过引入矢量量规场对其进行干扰。 我们通过麦克斯韦方程和比安奇恒等式找到了规范场的组成部分。 使用电流和一定的ansatz,我们发现了Fick在长波长范围的第一定律。...

    II型理论中的BPS弦的SYM理论和所有阶整体奇异结构

    应当考虑到来自麸皮,迈尔斯项和几个广义比安奇恒等式的各种耦合,以便能够重构IIB型(IIA)超弦理论的所有阶α'整体奇异性。 最后,我们评论一下如何毫不含糊地推导该S矩阵的所有阶次α'接触项,这些项在横向方向...

    Bianchi I模型作为周期性宇宙的原型

    然后,我们将其应用于从狄拉克约束产生的绝热近似la Vilenkin的高分子Wheeler-DeWitt方程, 它把宇宙体积当作准经典变量,实际上变成了在宇宙各向异性中确定的纯量子自由度的动态时钟。本分析的主要问题是确定比安奇...

    狄拉克弦的变奏

    狄拉克(Dirac)对磁单极子的非平凡比安奇身份的原始解决方案[1]重新定义了狄拉克弦的磁场强度,使轨距和单极自由度成对角线。 我们提供Dirac字符串的变体,我们通过正式扩展Bianchi身份来激发这一变化。 我们将展示...

    非阿贝尔规范场有效理论中的稳定有限能量密度解

    我们使用比安奇恒等式积分超过3(Nc2-1)的场强,并获得动量空间中其余3(Nc2-1)场强的有效作用。 我们获得了有效理论的运动方程(EOM)的静态解。 这些解在动量的z分量中表现出高斯性质,并且与其余动量的delta...

    高二语文期中试卷河南省豫南七校2008—2009学年上期期中联考高二语文联考试卷[精选].doc

    5. 科研方法:提到的戴安娜·W·比安奇的研究工作体现了科学研究的方法,包括观察、实验、样本分析和理论推断,揭示了生物学的一个新发现。 6. 社会现象:试卷题目和文段中的“金融大海啸”指的是2008年的全球金融...

    matlab代码csma-bianchi:用于研究IEEE802.11n和802.11ac标准的Bianchi模型的Matlab/Octave

    比安奇的模型 该存储库包含一个 Matlab/Octave 脚本,用于研究 IEEE 802.11n 和 802.11ac 标准的 Bianchi 模型。 快速开始 在运行脚本之前,在脚本开始时修改所需用例的输入参数: % Change these parameters for ...

Global site tag (gtag.js) - Google Analytics