У меня есть база данных комнаты, и я использовал 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);
}