Ich habe die App, die ActiveAndroid ORM
verwendet und ich brauche Liste der Modelle mit innerer Liste und Objekten zu speichern, die wie folgt aussieht:ActiveAndroid Optimierung relativ Tabellen
public class MyModel extends Model{
@Expose
@SerializedName(Columns.COLUMN_CREATED_AT)
@Column(name=Columns.COLUMN_CREATED_AT)
private Date createdAt;
.... and other fields
@Expose
@SerializedName(Columns.User)
public User users;
.... another objects
}
so die aktuelle Logik, die List<MyModel>
nächste speichert tun :
1) macht Update in ActiveAndroid.beginTransaction()/ActiveAndroid.endTransaction();
Block
2) für jede MyModel
user model
von db, Updates abruft und speichert
3) jeweils MyModel
ruft aus DB, aktualisiert und speichert
so der gesamte Prozess ungefähr 7-9 Sekunden dauert.
Als user
(und andere innere Objekte) kann ich das als nächstes zu tun haben in verschiedenen MyModel
Objekte gleich sein:
in der Schleife, die MyModel
spart bekommt ich die users
und es HashMap
setzen, so dass ich hat die Liste der Unique User und speichert es nach MyModel
Updates. (aber die gleiche Transaktion). Jetzt speichert es Daten für 3-4 Sekunden.
ABER, sieht ActiveAndroid
einige Verweise zwischen MyModel
und User
Tabelle macht, so dass, wenn ich versuchte, Benutzer aus der Tabelle zu entfernen, bekam ich eine Ausnahme:
FOREIGN KEY constraint failed
so, wie kann ich damit umgehen?