web-dev-qa-db-fra.com

Android Room: Comment modéliser des relations?

Je viens juste de commencer à travailler avec Room et, bien que tout semble assez intuitif, je ne comprends pas vraiment comment je peux gérer les relations avec exactitude.

SQLite étant une base de données relationnelle, vous pouvez spécifier des relations entre des objets. Même si la plupart des bibliothèques ORM autorisent les objets d'entité à se référencer, Room l'interdit explicitement. Même si vous ne pouvez pas utiliser de relations directes, Room vous permet néanmoins de définir des contraintes de clé étrangère entre entités. (Source: https://developer.Android.com/topic/libraries/architecture/room.html#no-object -références )

  1. Comment devriez-vous modéliser une relation plusieurs à plusieurs ou un à plusieurs ?
  2. À quoi cela ressemblerait-il dans la pratique (par exemple, les DAO + les entités)?
25
Rene Ferrari

Vous pouvez utiliser @Relation annotation pour gérer les relations dans la salle.

Une annotation pratique qui peut être utilisée dans un Pojo pour extraire automatiquement les entités de relation. Lorsque le Pojo est renvoyé d'une requête, toutes ses relations sont également récupérées par Room.

Voir document.

(Le document de Google contient des exemples déroutants. J'ai écrit les étapes et quelques explications de base lors de ma réponse. Vous pouvez vérifiez-le )

25
Devrim