Realm ORM:如何处理 Maps?

2023-11-24

我正在创建一个 Android 应用程序,我需要坚持Map<String,MyClass>。 我刚刚开始使用领域 ORM,因为它支持一对一和一对多、枚举和列表。我还找到了字符串列表的解决方法(即我必须创建一个封装字符串的 StringWrapper 类。 然而,从文档我明白没有简单的方法RealmMap,就像列表一样。 所以,我正在寻找保存地图的最佳方法。 我当前的想法是用对象列表替换我的地图KeyValueObject封装一个String(前地图键)和MyClass。类似于Map.Entry。 是否有其他解决方案不需要我因技术原因重新设计领域模型?


正如您所注意到的,Realm 尚不支持地图:https://github.com/realm/realm-java/issues/759

您可以使用模型类:

class MyData extends RealmObject {
    private RealmList<MyMapEntry> myMap;
}

class MyMapEntry extends RealmObject {
    private String key;
    private MyClass value;
}

假设你有一个MyData称为的对象myData并且您希望获取与关联的值myKey,查询MyClass myClass = myData.getMyMap().where().equalTo("key", myKey).firstFirst()可能有用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Realm ORM:如何处理 Maps? 的相关文章

随机推荐

  • 实体框架循环引用

    再次尝试这个问题 因为我的第一次尝试几乎没有连贯性 p 所以我非常困惑并使用 Entity Framework Code First 我有一个森林课 我有一个树类 每个森林可以有很多树 当我尝试序列化时 我得到了循环引用 public cl
  • 将数组传递给构造函数而不声明它?

    在处理中 我定义了以下类 class SomeClass SomeClass int someArray println someArray 现在我想创建该类的实例 但在将数组传递给构造函数时遇到问题 SomeClass myVar new
  • 每 5 分钟运行一次 PHP 脚本并避免竞争条件

    我有一个 php 脚本 需要每 5 分钟运行一次 目前我正在使用 cron 作业来运行它 并且效果很好 但我的主机只允许最短时间 15 分钟 所以我的问题是 我可以使用访问者每5分钟触发一次php脚本的运行吗 我可以轻松地记录它上次运行的时
  • Swift:带有中心圆形按钮的自定义 TabBar

    I try to create custom tabbar like the below picture Below is the result i get 下面是我当前的代码 class CustomTabBarController UI
  • 如何使用 objdump 反汇编单个函数?

    我的系统上安装了一个二进制文件 并且想查看给定函数的反汇编 最好使用objdump 但其他解决方案也是可以接受的 From 这个问题我了解到 如果我只知道边界地址 我也许能够反汇编部分代码 从这个答案我已经学会了如何将分割的调试符号转回单个
  • 如何在 iOS 中渲染拉伸文本?

    给定一个矩形区域 我想使用特定字体渲染一些文本并获取渲染的文本填写矩形 如下图所示 这与仅更改字体大小不同 将其渲染为位图然后缩放它不是一个选项 它看起来很糟糕 矢量图形就是做到这一点的方法 Solution 我想出了以下似乎对我的目的有用
  • 从 android 加密并在 CryptoJS 中解密

    我对 AES 加密和解密非常陌生 在我的应用程序中 我必须解密从服务器获得的数据 我收到的数据是使用 CryptoJS 库加密的 解密效果非常好 但是 在将数据发布到服务器时 我必须再次加密数据并将其发送到服务器 这没有提供适当的加密 我已
  • 如何在远程计算机上执行命令?

    我在服务器中有一个共享文件夹 我需要对某些文件远程执行命令 我怎么做 服务器上需要运行哪些服务才能正常工作 一些细节 只能使用 C 服务器上不能安装任何东西 另一种解决方案是使用WMI NET 或 Windows 管理规范 使用 NET F
  • Swift:标签文本-->“致命错误:在解包可选值时意外发现 nil”

    就像标题中所说的那样 我试图通过单击按钮来更改标签文本 错误出现在行self playerChoice text You Rock import UIKit class ViewController UIViewController var
  • 在 Mathematica 中读取 UTF-8 编码的文本文件

    我怎样才能读到utf 8编码Mathematica 中的文本文件 这就是我现在正在做的事情 text Import charData txt Text CharacterEncoding gt UTF8 但它告诉我 CharacterEnc
  • 使用setuptools,如何在安装时下载外部数据?

    我想创建一些非常易于使用的 pip 包 用于在 Python 中加载常见的机器学习数据集 是的 有些东西已经存在 但我希望它更简单 我想要实现的是 用户运行pip install dataset pip 下载数据集 例如通过wget htt
  • “Xcode”已损坏,无法打开。您应该将其移至垃圾箱

    已安装XCode 6 on Mavericks 它不运行 将操作系统更新为Yosemite 10 10 现在 Xcode app 通过 dmg 安装 启动失败并显示错误消息 Xcode is damaged and can t be ope
  • 使用 jQuery,如何动态设置选择框的大小属性?

    Using jQuery 如何动态设置选择框的大小属性 我想将其包含在这段代码中 mySelect bind click function myOtherSelect children remove var options for var
  • VS 2008 Professional、智能设备 .NET C# 项目 - 构建缓慢

    我有 VS 2008 Professional 和智能设备 NET C 项目 我总共有大约 100 个 cs 文件 构建需要很长时间 我必须等待链接器大约 每次编译项目需要 1 分钟 60 秒 我有 Core i3 4GB RAM 7200
  • 如何更改Kafka主题的副本数量?

    生产者或管理员创建 Kafka 主题后 如何更改该主题的副本数量 要增加给定主题的副本数量 您必须 1 在自定义重新分配 json 文件中指定额外副本 例如 您可以创建增加复制因子 json并将此内容放入其中 version 1 parti
  • 不安全的发布并发java [重复]

    这个问题在这里已经有答案了 Java并发实践书里已经给出了不安全发布的例子 public class Holder private int n public Holder int n this n n public void assertS
  • InPlaceBitmapMetadataWriter.TrySave() 返回 true 但不执行任何操作

    在 Windows 7 中的某些 JPG 文件 EPS 预览 由 Adob e Illustrator 生成 上 InPlaceBitmapMetadataWriter TrySave 在调用一些 SetQuery 后返回 true 但不执
  • Qt 如何打开当前目录中的文件?或者这有什么问题?

    我正在尝试在可执行文件的当前位置打开一个 xml 文件 QString path QDir currentPath path append acc xml QFile file path if file open QIODevice Rea
  • 如何为 MySQL 日期时间列设置默认值?

    如何为 MySQL 日期时间列设置默认值 在 SQL Server 中是getdate MySQL 的等价物是什么 如果这是一个因素的话 我正在使用 MySQL 5 x 重要编辑 现在可以使用 DATETIME 字段来实现这一点 因为MyS
  • Realm ORM:如何处理 Maps?

    我正在创建一个 Android 应用程序 我需要坚持Map