Как запросить Android таблицу комнат со столбцом INHERIT_FIELD_NAME - PullRequest
0 голосов
/ 06 мая 2020

У меня есть база данных комнаты, и я использовал INHERIT_FIELD_NAME во всей информации о столбце моего объекта. Как мне получить доступ к имени поля в @Query? Автозаполнение дает мне `[имя-поля]`, но как мне определить, какой столбец он должен занять?

Мой объект

@Entity
public class Artist {
    @PrimaryKey
    private int artistId;

    @ColumnInfo(name = INHERIT_FIELD_NAME)
    private String first_name;

    @ColumnInfo(name = INHERIT_FIELD_NAME)
    private String last_name;

    @ColumnInfo(name = INHERIT_FIELD_NAME, defaultValue = "NULL")
    @Nullable
    private String nickname;

    @ColumnInfo(name = INHERIT_FIELD_NAME, defaultValue = "NULL")
    @Nullable
    private HashMap<String, String> artist_links;

    @ColumnInfo(name = INHERIT_FIELD_NAME)
    private String profile_pic_link;

}

И DAO объекта

@Dao
public interface IArtistDAO {

    @Insert(onConflict = OnConflictStrategy.REPLACE)
    public void insert_artists(Artist... artists);

    @Update
    public void update_artists(Artist... artists);

    @Delete
    public void delete_artists(Artist... artists);

    @Query("SELECT * FROM Artist")
    public Artist[] loadAllArtists();

    @Query("SELECT * FROM Artist WHERE artistId = :id")
    public Artist[] loadArtistById(long id);

    @Query("SELECT * FROM Artist WHERE `[field-name]` = :nickname")
    public Artist[] loadArtistByNickname(String nickname);

    @Query("SELECT * FROM Artist WHERE `[field-name]` = :name")
    public Artist[] loadArtistByName(String name);

}
...