Что такое ORM для Android с поддержкой @Inheritance (стратегии = InheritanceType.SINGLE_TABLE)? - PullRequest
0 голосов
/ 21 апреля 2019

Я занимаюсь разработкой приложения для чата Android, у меня есть несколько типов сообщений, унаследованных от одного абстрактного класса. Я хочу получить список различных типов сообщений чата. Я думаю, что мне нужен ORM с поддержкой наследования со стратегией SINGLE_TABLE. Существует ли ORM для Android с поддержкой этой функции? Или, возможно, вы посоветуете, как решить эту проблему, используя ORM без поддержки SINGLE_TABLE?

Примеры:

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 голосов
/ 21 апреля 2019

Я не знаю, знаете ли вы много об ORM в Android, но два из самых известных ORM для Android - Room и Realm. И эти двое могут достичь того, что вы хотите. Но не верьте моему слову о царстве, так как я собираюсь только сказать, что мой друг рассказал мне о царстве.

Для начала Room работает в SQLite, а Realm в NoSQL. Теперь, я предполагаю, что вы хорошо знаете о наследовании и полиморфизме, эта концепция также может быть применена к SQL. Это с учетом того, что вы выбираете SQLite. Теперь для царства это другая история. Мой друг сказал мне, что полиморфизм ваших моделей отвечает полиморфизму базы данных. Хотя, Я очень сомневаюсь, что , но мне не нравится царство, поэтому не верьте мне на слово.

Для выбора вашей базы данных я буду откровенен, чтобы сказать вам, чтобы выбрать SQLite, и чтобы помочь вам решить, вот простой сайт, который изложил причины, по которым лучше, SQL или NoSQL: http://www.nosql -vs- sql.com/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...