Android la Chambre de la persistance de la bibliothèque gracieusement comprend l' @Insérer et @mise à Jour des annotations qui travaillent pour des objets ou des collections. J'ai cependant un cas d'utilisation (notifications push contenant un modèle) qui aurait besoin d'une UPSERT comme les données peuvent ou peuvent ne pas exister dans la base de données.
Sqlite n'a pas upsert en natif, et les solutions de contournement sont décrites dans cette SORTE de question. Étant donné les solutions de là, comment pourrait-on appliquer à la Chambre?
Pour être plus précis, comment puis-je mettre en œuvre une insertion ou une mise à jour dans la Chambre qui ne se brisera pas toutes les contraintes de clé étrangère? À l'aide de l'insérer avec onConflict=REPLACE sera la cause de la onDelete pour une clé étrangère pour la ligne à être appelé. Dans mon cas, onDelete provoque une cascade, et de le réinsérer une ligne entraîne des lignes dans d'autres tables avec la clé étrangère à être supprimé. Ce n'est PAS le comportement voulu.