Is there any way to create reusable generic base class DAOs with Android Room?
public interface BaseDao {
@Insert
void insert(T object);
@Up
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