Как перегрузить методы android-room Dao?

#java #android #android-room

#java #Android #android-room

Вопрос:

В Android-Room я пишу @Dao для класса объектов articleTable.

В этом классе ArticleDao есть несколько методов обновления с разными именами.

Могу ли я перегрузить методы android-room?

Если я перегрузлю методы android-room, будут ли они работать?

Класс ArticleDao находится в следующем

 @Dao
public interface ArticleDao {
    // insert query
    @Insert(onConflict = REPLACE)
    void insert(ArticleData articleData);

    @Delete
    void delete(ArticleData articleData);

    // delete all query
    @Delete
    void reset(List<ArticleData> articleDataList);

    // update query
    @Query("UPDATE "   Constants.TABLE_NAME_ARTICLE  
            " SET title = :uTitle, content = :uContent  WHERE ID = :uID")
    void updateTitle_Content(int uID, String uTitle, String uContent);

    // update query
    @Query("UPDATE "   Constants.TABLE_NAME_ARTICLE  
            " SET articleID = :uArticleID, title = :uTitle WHERE ID = :uID")
    void updateArticleID_Title_Content(int uID, int uArticleID, String uTitle);

    // update query
    @Query("UPDATE "   Constants.TABLE_NAME_ARTICLE  
            " SET articleID = :uArticleID, title = :uTitle, content = :uContent WHERE ID = :uID")
    void updateAll(int uID, int uArticleID, String uTitle, String uContent);

    // get all data query
    @Query("SELECT * FROM "   Constants.TABLE_NAME_ARTICLE)
    List<ArticleData> getAll();
}
 

Ответ №1:

Да, мы можем перегрузить методы android-room.

процесс перегрузки метода android-room такой же, как и перегрузка метода java

Класс ArticleDao следует за перегруженными методами.

 @Dao
public interface ArticleDao {
    // insert query
    @Insert(onConflict = REPLACE)
    void insert(ArticleData articleData);

    @Delete
    void delete(ArticleData articleData);

    // delete all query
    @Delete
    void reset(List<ArticleData> articleDataList);

    // update query
    @Query("UPDATE "   Constants.TABLE_NAME_ARTICLE  
            " SET title = :uTitle, content = :uContent  WHERE ID = :uID")
    void update(int uID, String uTitle, String uContent);

    // update query
    @Query("UPDATE "   Constants.TABLE_NAME_ARTICLE  
            " SET articleID = :uArticleID, title = :uTitle WHERE ID = :uID")
    void update(int uID, int uArticleID, String uTitle);

    // update query
    @Query("UPDATE "   Constants.TABLE_NAME_ARTICLE  
            " SET articleID = :uArticleID, title = :uTitle, content = :uContent WHERE ID = :uID")
    void update(int uID, int uArticleID, String uTitle, String uContent);

    // get all data query
    @Query("SELECT * FROM "   Constants.TABLE_NAME_ARTICLE)
    List<ArticleData> getAll();
}