android - 什么是支持@Inheritance(strategy = InheritanceType.SINGLE_TABLE)的Android ORM?
问题描述
我正在开发一个 android 聊天应用程序,我有几种类型的消息继承自一个抽象类。我想获取不同类型聊天消息的列表。我想我需要一个带有 SINGLE_TABLE 策略的继承支持的 ORM。是否有支持此功能的适用于 Android 的 ORM?或者,也许您会建议如何在没有 SINGLE_TABLE 支持的情况下使用 ORM 来解决这个问题?
例子:
public abstract class AbstractMessage implements MessageListContent, Serializable, Comparable<AbstractMessage> {
public enum Status {
DELIVERED,
SENDING_AND_VALIDATION,
NOT_SENDED,
INVALIDATED
}
private SupportedMessageListContentType supportedType = SupportedMessageListContentType.UNDEFINED;
private boolean iSay;
private long timestamp;
private Status status = Status.SENDING_AND_VALIDATION;
private String transactionId;
private String companionId;
// getters and setters
//...
}
public class BasicMessage extends AbstractMessage {
private String text;
private transient Spanned htmlText;
// getters and setters
//...
}
public class TransferMessage extends AbstractMessage {
private BigDecimal amount;
// getters and setters
//...
}
解决方案
我不知道你是否对 Android 中的 ORM 了解很多,但是,Android 中最著名的两个 ORM 是 Room 和 Realm。这两个可以实现你想要的。但是,不要相信我的领域,因为我只会陈述我的朋友告诉我的关于领域的内容。
首先,Room 在 SQLite 中运行,在 NoSQL 中运行 Realm。现在,我假设您对继承和多态非常了解,这个概念也可以应用于 SQL。也就是说,考虑到您选择 SQLite。现在对于领域,这是一个不同的故事。我的朋友告诉我,您的模型的多态性与数据库的多态性有关。虽然,我非常怀疑,但我不喜欢领域,所以不要相信我的话。
对于选择数据库,我会坦率地告诉您选择 SQLite 并帮助您做出决定,这里有一个简单的网站,其中列出了 SQL 或 NoSQL 更好的原因:http://www.nosql-vs-sql。 com/
推荐阅读
- python - 如何获取要插入 mysql 的函数参数的值
- azure - 带有天蓝色的纤毛簇网
- javascript - 主线程上的同步 XMLHttpRequest 在 ASP.NET MVC 和 Page.js 中已被弃用
- javascript - 使用钩子实现 redux-tooltip 和 react-simple-maps
- c# - IHttpContextAccessor 在控制器外部使用时包含空的 User.Identity
- excel - 有没有更聪明的方法来解决几个列
- facebook - 如何根据产品类别展示 Facebook 广告?
- jenkins - Jenkins Pipeline 不执行下一阶段
- azure - 我可以使用 azure devops 创建一个 azure 应用吗
- elasticsearch - ElasticSearch 源过滤对象数组