我正在开发一个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
//...
}
答案 0 :(得分:0)
我不知道您是否对android中的ORM了解很多,但是,Android中最著名的两个ORM是Room和Realm。这两个可以实现您想要的。但是,不要相信我的领域,因为我只会说出我的朋友告诉我的关于领域的事情。
对于初学者,Room在SQLite中运行,而Realm在NoSQL中运行。现在,我假设您对继承和多态性非常了解,这个 concept 概念也可以应用于SQL。这是考虑到您选择了SQLite。对于领域而言,这是一个不同的故事。我的朋友告诉我,您模型的多态性可以回答数据库的多态性。虽然, 我对此表示高度怀疑 ,但是我不喜欢领域,所以请不要相信我。
在选择数据库时,我会很坦率地告诉您选择SQLite并帮助您做出决定,这是一个简单的网站,它概述了SQL或NoSQL更好的原因:http://www.nosql-vs-sql.com/