代码之家  ›  专栏  ›  技术社区  ›  Blazej SLEBODA

Android Room数据库项目中的单对多DAO和存储库?

  •  1
  • Blazej SLEBODA  · 技术社区  · 6 年前

    我想知道在每个项目中使用单个存储库和DAO类是否有缺点?

    1 回复  |  直到 6 年前
        1
  •  11
  •   musooff    6 年前

    没有这样的规定你必须分开 @Dao

    @Dao
    interface MyDao{
        @Query("SELECT * FROM Student")
        fun getStudents(): List<User>
    
        @Query("SELECT * FROM Professors")
        fun getProfs(): List<User>
    }
    

    但是根据约定,您可以为每个实体创建单独的Dao。这样你的代码就会被组织起来,仅此而已。如果在同一个Dao中有许多不相关的查询,那么很难检查代码。

    对于存储库,我有不同的方法。虽然没有这样的规则,您必须使用单独的存储库或单一的存储库,我会使用两者,无论我认为一个是必要的。

    例如,如果我只有一个来自 User 桌子和一个 Post 用户 还有10张桌子 岗位

    总之,这些只是约定,以上只是建议的编码风格。