持久化对象的需求:
-- Persistent Interfaces --
实现 org.apache.cayenne.Persistent 接口,需要三个bean属性:objectId, persistenceState 以及 objectContext。
org.apache.cayenne.DataObject。实现了 ObjectContext - DataContext 接口,提供了更多的属性。可以使用 cgen Ant Task或者CayenneModeler 生成。
在框架内部,返回给用户下面这些功能:
1 快速一致地检查、缓存、管理对象。
2 没有实际意义的主键不需要一定映射成对象属性。
3 对象在自己上下文中,无需其他的上下文,从业务逻辑中访问数据库。
4 对象感知和对比所处的状态,并能智能化实现其逻辑(如对象数据已修改,但没有提交,可以在用户界面以不同颜色指示)。
5 DataObject 实现通用的持久化对象,通用对象可以映射到多个实体类,并且持久化行为可以在运行时动态设置。
-- Property Accessors --
属性访问器提供了一个持久化对象的很方便的功能,在读取或者设置属性值之前,可以通过闭包方式调用回调方法。
监听属性访问器允许延迟解析对象,以及对象关联,并能自动实现双向关联。使用持久化接口,属性监听代码一般可以通过类生成器生成。
持久化对象的使用:(内容较多 就不详细翻译了)
--- 查询能力 ---
--- 单方法调用提交和回滚 ---
--- 多级嵌套提交和回滚 ---
--- 关联 ---
--- 自动双向关系绑定 ---
--- 上下文(对象关系和状态)注入 ---
--- 查询合并 ---
--- 延迟对象解析 ---
原文:
http://cayenne.apache.org/doc30/cayenne-contract.html