Comment mettre à jour une table en utilisant une clé (pas une clé d'identification primaire)?Mise à jour par clé dans greendao
J'ai une table de client et j'obtiens des données de client qui sont mises à jour ou créées. Donc, pour les données nouvellement créées, j'utilise la méthode insertOrReplace qui insère les données en utilisant l'objet.
Mais pour mettre à jour une ligne, selon mes connaissances, je dois obtenir la ligne en utilisant la clé que j'ai, puis mettre à jour la ligne. Est-il impossible de le faire sans obtenir la ligne car cela nécessitera deux opérations pour chaque ligne.
La raison pour laquelle je pose cette question est parce que je reçois plusieurs entrées et que j'ai besoin de mettre à jour quelques unes d'entre elles. Je voulais utiliser quelque chose de similaire à updateInTx pour cela. Quoi qu'il en soit, merci pour les explications sur le cache greendao. – Anuj
@Anuj Si vous voulez que toutes vos mises à jour se produisent dans une transaction, il vous suffit de démarrer une transaction avant votre première mise à jour et de la valider ou de la restaurer après votre dernière mise à jour/erreur. Greendao reconnaîtra votre transaction et l'utilisera. Voir ma réponse [ici] (http://stackoverflow.com/questions/23567985/android-java-outofmemory-while-inserting-a-huge-list-into-the-database-sql/23604766#23604766). – AlexS
Je ne le savais pas. C'était ce que je cherchais. Merci. – Anuj