数据持久层(06)_PersistentCriteria 类层次

 
  • 类图:

持久层设计_PersistentCriteria 类层次

  • PersistentCriteria 类层次
    • 概述:PersistentObject封装了使单个对象持久化的行为。而PersistentCriterai 类层次支持一次保存、获取、删除多个对象。
    • 方法:
      • addSelectXXX():PersistentCriteria类的addSelectXXX()是一组方法,XXX可代表:GreaterThan,LitterThan,EqualTo等。
        • 两个参数:
          • 一个参数是类的属性
          • 另一个是值。
        • 返回:这个方法返回对应的 SelectionCriteria的子类实例。
        • 例如:addSelectGreaterThan()创建一个GreaterThanCriteria实例而 addSelectEqualTo()创建一个EqualToCriteria实例。
      • addOrCriteria()方法:它以一个PeristentCriteria的实例作为参数并有郊使用“或”逻辑将两个条件连在一起。
    • 属性:
      • forClass:它指示了被处理的对象的类型,例如可能是Employee或者Invoice对象。
      • isSubclassesIncluded:批示了是否条件也应用于 forClass 子类。
    • 总结:这两个属性有效的支持了继承中的多态性。
    • 例如:这两个属性的组合以及 addSelectXXX()方法可以使我们对满足特定条件的Person对象及 其子类的实例进行操作。如:名字开头为“J”并且出生在1996年6月14日到1997年8月14日之间的Person对象和它的子类的实例
  • SelectionCriteria类层次:
    • 概述:封装了用来比较指定值与某个属性的行为。每种比较类型(等于、大于、小于、小于等于、大于等于)有一个子 类。注意:它的实例通过使用“与”逻辑与其它实例关联。(“或”逻辑由orCirteria()方法实现)
  • RetrieveCriteria类
    • 概述:这个类用于获持久数据。它支持获取零个或多个对象、代理对象、记录或者一个游标。为什么这样就不细说了。
  • DeleteCriteria类:
    • 概述:支持一次删除多个对象。同时支持标识删除(makeForDeletion())和直接删除(permanentlyDelete())。注意:DeleteCriteria 类的实例创建一个UpdateCriteria的实例,更新对应表的deletionDateTime或者isDeleted字段。
  • UpdateCriteria类:
    • 概述:支持同时更新一组对象的一个或多个属性。
    • 方法:
      • Perform()方法:这个方法首先通过RetrieveCriteria的实例获得要被更新的对象,然后循环将它们的属性赋予新值,最后发送一个save() 消息给每个对象来钭对象写回持久机制。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值