我看到了一堆关于 Hibernate 的轻量级替代品的问题,尤其是对于 Android。但是它们中的哪一个具有“身份图”模式?
此模式确保表示数据库中一行的任何对象在任何会话中仅存在一次。– 它有助于我的程序保持一致:如果我在某处更改映射对象,它会随处更改(因为所有引用都指向同一个对象)。如果我通过新的数据库查询重新获取对象,或者仍然从之前的调用中保留它,这并不重要:ORM 确保它们的行为都像同一件事。
Hibernate 在它的“一级缓存”中执行此操作。
我看到了一堆关于 Hibernate 的轻量级替代品的问题,尤其是对于 Android。但是它们中的哪一个具有“身份图”模式?
此模式确保表示数据库中一行的任何对象在任何会话中仅存在一次。– 它有助于我的程序保持一致:如果我在某处更改映射对象,它会随处更改(因为所有引用都指向同一个对象)。如果我通过新的数据库查询重新获取对象,或者仍然从之前的调用中保留它,这并不重要:ORM 确保它们的行为都像同一件事。
Hibernate 在它的“一级缓存”中执行此操作。
ORMLite是一个 Android ORM 包,从 4.26 版(2011 年 9 月 26 日发布)开始包含内部对象缓存。ORMLite 没有“会话”模式,但用户可以将缓存注入任何 DAO,并且可以在选择时刷新它。这是缓存支持的文档。
从手册中引用,缓存支持以下内容:
ORMLite 核心包中包含 2 个对象缓存实现。一个支持弱/软引用,另一个是标准 LRU。
与 Hibernate 的 1 级缓存相比,它[显然] 是一个非常简单的实现。欢迎反馈。
greenDAO支持类似于 Hibernate 的会话,并带有一个身份范围。在会话中,实体由 ORM 层跟踪。
我正在尝试做同样的事情。你听说过https://github.com/iainconnor/ObjectCache吗?
我将一一存储列表的长度和所有项目。
回复你,如果我完成了我自己的实现
干杯,卡罗莉