支持@Inheritance(strategy = InheritanceType.SINGLE_TABLE)的Android ORM是什么?

时间:2019-04-21 17:55:43

标签: 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
    //...
}

1 个答案:

答案 0 :(得分:0)

我不知道您是否对android中的ORM了解很多,但是,Android中最著名的两个ORM是Room和Realm。这两个可以实现您想要的。但是,不要相信我的领域,因为我只会说出我的朋友告诉我的关于领域的事情。

对于初学者,Room在SQLite中运行,而Realm在NoSQL中运行。现在,我假设您对继承和多态性非常了解,这个 concept 概念也可以应用于SQL。这是考虑到您选择了SQLite。对于领域而言,这是一个不同的故事。我的朋友告诉我,您模型的多态性可以回答数据库的多态性。虽然, 我对此表示高度怀疑 ,但是我不喜欢领域,所以请不要相信我。

在选择数据库时,我会很坦率地告诉您选择SQLite并帮助您做出决定,这是一个简单的网站,它概述了SQL或NoSQL更好的原因:http://www.nosql-vs-sql.com/