Reusable generic base class DAOs with Android Room

前端 未结 6 2281
夕颜
夕颜 2020-12-23 18:30

Is there any way to create reusable generic base class DAOs with Android Room?

public interface BaseDao {

  @Insert
  void insert(T object);

  @Up         


        
6条回答
  •  挽巷
    挽巷 (楼主)
    2020-12-23 18:57

    AFAIK, you can do it only for insert(), update(), and delete(), as it doesn't require specific SQL statement that needs to be verified at compile time.

    example:

    BaseDao.java

    public interface BaseDao {
    
        @Insert
        void insert(T obj);
    
        @Insert
        void insert(T... obj);
    
        @Update
        void update(T obj);
    
        @Delete
        void delete(T obj);
    }
    

    UserDao.java

    @Dao
    abstract class UserDao implements BaseDao {
    
        @Query("SELECT * FROM User")
        abstract List getUser();
    
    }
    

    source

提交回复
热议问题