title: How can I decouple my models when I'm using Room
body: <p>To preface this, I'm fairly new to Android development and I'm currently trying to learn by building an app while following Clean Architecture.</p>
  
  <p>I currently have a model called "Card" and the Room library for storing all "Card" data. However, the only way I've found to implement the Room library in my app is by designating "Card" model as my entity which resides in the domain layer of my app. From my understanding, this violates the decoupling of layers as the domain layer is supposed to be independent of the framework.</p>
  
  <pre><code>@Entity
  public class CardImpl implements Card {
    @PrimaryKey
    @NonNull
    public String cardID;
  
    @ColumnInfo(name = "card_name")
    public String name;
  
    @ColumnInfo(name = "card_class")
    public String cardClass;
  
    @ColumnInfo(name = "card_text")
    public String text;
  
    @ColumnInfo(name = "card_cost")
    public int cost;
  </code></pre>
  
  <p>I've tried subclassing the model as a decorator but couldn't get the annotations to work on the subclass. Is there a better approach for this and is this something I should be concerned about?</p>
  
  <p>Also I'm not sure how much information you need to answer my question, but please let me know if you need more! Thanks!</p>