Ich habe gerade Raum für die Offline-Datenspeicherung implementiert. Aber in einer Entity-Klasse erhalte ich den folgenden Fehler:
%Vor%Und die Klasse ist wie folgt:
%Vor%Im Grunde möchte ich die ArrayList in der Datenbank speichern, aber ich konnte nichts Relevantes finden. Können Sie mir helfen, ein Array mit Room zu speichern?
HINWEIS: MyListItems Pojo Klasse enthält 2 Strings (ab sofort)
Vielen Dank im Voraus.
Option # 1: Haben MyListItems
eine @Entity
, wie MainActivityData
ist. MyListItems
würde ein @ForeignKey
zurück auf MainActivityData
einrichten. In diesem Fall kann MainActivityData
jedoch nicht private ArrayList<MyListItems> myListItems
enthalten, da Entitäten in Room nicht auf andere Entitäten verweisen. Ein View-Modell oder ein ähnliches POJO-Konstrukt könnte jedoch auch ein MainActivityData
und das zugehörige ArrayList<MyListItems>
haben.
Option # 2: Richten Sie ein Paar @TypeConverter
-Methoden ein, um ArrayList<MyListItems>
in und von einem Basistyp zu konvertieren (z. B. String
, z. B. durch Verwendung von JSON als Speicherformat). % Co_de% kann jetzt direkt MainActivityData
haben. Es wird jedoch keine separate Tabelle für ArrayList<MyListItems>
geben, und Sie können daher nicht MyListItems
sehr gut abfragen.
Typkonverter wurden speziell dafür entwickelt. In Ihrem Fall können Sie das folgende Code-Snippet verwenden, um Daten in DB zu speichern.
%Vor%Und erwähne diese Klasse in deiner Raum-DB wie folgt
%Vor%Weitere Informationen hier
Tags und Links java android android-room