У меня есть таблица «Контакты» и таблица «Номера телефонов». Таблица с телефонными номерами содержит строку, которая указывает на автоматически сгенерированный идентификатор контакта. Я пытаюсь получить все телефонные номера, связанные с этим контактом в моем PhoneNumbersDao, как показано ниже:
@Dao
public interface PhoneNumberDao {
@Insert
void insert(PhoneNumber phoneNumber);
@Update
void update(PhoneNumber phoneNumber);
@Delete
void delete(PhoneNumber phoneNumber);
// Retrieve entry/entries by contact ID
@Query("SELECT * FROM phone_numbers_table WHERE contact_id =:contactId")
LiveData<List<PhoneNumber>> getPhoneNumbersById(long contactId);
}
Мой класс PhoneNumber:
@Entity(tableName = "phone_numbers_table")
public class PhoneNumber implements Serializable {
@PrimaryKey(autoGenerate = true)
public int id;
/** String resource ID for the phone number */
@SerializedName("phone_number")
public String mPhoneNumber;
/** String resource ID for the phone number type */
@SerializedName("phone_number_type")
public String mPhoneNumberType;
/** String resource ID for the respective contact ID */
@SerializedName("contact_id")
@ColumnInfo(name = "contact_id")
public int contactId;
public PhoneNumber(String phoneNumber, String phoneNumberType, int contactId) {
this.mPhoneNumber = phoneNumber;
this.mPhoneNumberType = phoneNumberType;
this.contactId = contactId;
}
public int getId() {
return id;
}
public String getPhoneNumber() {
return mPhoneNumber;
}
public String getPhoneNumberType() {
return mPhoneNumberType;
}
public int getContactId() {
return contactId;
}
}
И, наконец, я пытаюсь получить доступ к базе данных, используя этот метод в PhoneNumberRepository:
public LiveData<List<PhoneNumber>> getPhoneNumbersByContactId(long id) {
return phoneNumberDao.getPhoneNumbersById(id);
}
Но метод все еще возвращает ноль. Почему это может быть так?