База данных номеров INNER JOIN результаты - PullRequest
0 голосов
/ 05 февраля 2019

У меня есть две таблицы с отношением один к одному

Например:

Таблицы:

  • пользователи [u_id, u_name, u_address]
  • адрес [add_id, add_country, add_town, add_street]

Что означает два объекта и два DAO в моем коде Java

Когда я хочу выполнить этот запрос: select * from users inner join address on u_address = add_id

Он вернет

LiveData<List<ItemUser>>

И вот так я получу u_address, который является просто идентификатором вместо объекта ItemAddress, где я могу получить нужные данные.

Я знаю, что могу выполнить другой метод, который может получить данные выбранного адреса, но я хочу знать, возможно ли получить все данные, вызвав только один метод?

1 Ответ

0 голосов
/ 06 февраля 2019

Как я понимаю, вам нужен результат отношения этих двух сущностей.

Вы можете использовать Аннотация Отношения

То же ответ в переполнении стека.

В вашем примере будет что-то вроде этого.

Класс

@Entity
public class Users {
 @PrimaryKey public final int u_id;
             public final String u_name;
             public final int u_address;
}

@Entity
public class Address {
@PrimaryKey public final int add_id;
            public final String add_country;
            public final String add_town;
            public final String add_street;
}

public class UserAndAddress{
@Embedded public Users user;

@Relation(parentColumn = "u_id",
          entityColumn = "add_id") public List<Address> addressList;
}

Дао

@Dao
public interface UserAndAddressDao {

@Query("SELECT * from users")
public List<UserAndAddress> getUsersAndAddress();
}
...