Mise à jour de certaines champ spécifique d'une entité android Chambre
Je suis en utilisant android chambre persistance de la bibliothèque pour mon nouveau projet.
Je veux mettre à jour le champ de la table.
J'ai essayé dans mon Dao
-
//Method 1:
@Dao
public interface TourDao {
@Update
int updateTour(Tour tour);
}
Mais quand j'essaie de mettre à jour en utilisant cette méthode, puis il met à jour tous les champs de l'entité à laquelle elle correspond à la valeur de la clé primaire de la tour de l'objet.
J'ai utilisé @Query
//Method 2:
@Query("UPDATE Tour SET endAddress = :end_address WHERE id = :tid")
int updateTour(long tid, String end_address);
Il travaille, mais il y aura beaucoup de requêtes dans mon cas, car j'ai beaucoup de champs dans mon entité. Je veux savoir comment puis-je mettre à jour certaines (pas toutes) comme Method 1
where id = 1; (id est automatiquement générer la clé primaire).
//Entity:
@Entity
public class Tour {
@PrimaryKey(autoGenerate = true)
public long id;
private String startAddress;
private String endAddress;
//constructor, getter and setter
}
- Comment mettre à jour une liste au Tableau. En fait, j'ai inséré la liste dans le Tableau par TypeConverter. Mais tandis qu'à venir avec la mise à jour il ne fonctionne pas. Veuillez indiquer, si vous avez fait face à aucun problème de ce genre.
- Avez-vous eu des solution pour le commentaire ci-dessus?
Vous devez vous connecter pour publier un commentaire.
Utilisation
@Query
, comme vous l'avez fait dans la Méthode 2.Puis ont de plus petites entités. Ou, ne pas mettre à jour les champs individuellement, mais plutôt avoir de plus gros grains interactions avec la base de données.
OIE, il n'y a rien dans la Chambre elle-même qui va faire ce que vous chercher.
Selon SQLite Mettre À Jour Les Docs :
Exemple:
Entité:
Dao:
Peut-être que vous pouvez l'essayer, mais la performance sera pire un peu (ou plus):
Si vous avez besoin de mettre à jour des informations de l'utilisateur pour un utilisateur spécifique ID "x",
La ViewModel d'initialiser une instance de dbManager pour accéder à la base de données.
Le code devrait ressembler à ceci:
Puis il suffit de mettre à jour vos utilisateurs élément de cette façon, supposons que votre nom d'utilisateur est en 1122 et le nom d'utilisateur est "xyz", ce qui doit être changé pour "zyx".
Obtenir un userItem de 1122 id Utilisateur de l'objet
C'est un code brut, espérons que cela vous aide.
Heureux de codage