CSDN博客

img MasterLRC

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

发表于2004/7/15 18:25:00  1295人阅读

 
  • 类图:

持久层设计_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

相关博文

我的热门文章

img
取 消
img