2015-03-27 1 views
-1

Я использую ActiveAndroid в первый раз.ActiveAndroid - ВЫБЕРИТЕ всех пользователей, у кого есть этот продукт, по названию продукта

У меня есть пользователи, у которых есть продукты. Я хочу выбрать всех пользователей, у которых есть определенный продукт. Вот моя «схема»

@Table(name = "users") 
class User extends Model { 

} 

@Table(name = "products") 
class Product extends Model { 

    @Column(name = "product_name") 
    private String name; 

    @Column(name = "user") 
    private User user; 
} 

У меня есть следующий метод:

public List<User> getAllUsersThatHaveProduct(String productName) { 

    // What do I do here? 
} 

Если я хотя бы знал, что таблицы действительно создает Активный Android и как это касается обеих таблиц, я мог бы попробовать что-то , но я этого не знаю.

ответ

2

Вы, вероятно, хотите, чтобы прочитать это здесь: https://github.com/pardom/ActiveAndroid/wiki/Querying-the-database

В основном ActiveAndroid создаст таблицу с именем «продукты», которые будут иметь столбец «пользователь», который будет внешним ключом к таблице «пользователей». поэтому идентификатор из записи пользователя будет соответствовать столбцу «пользователь» на «продуктах».

так что вы должны быть в состоянии сделать что-то вроде:

new Select("u.*") 
    .from(User.class).as("u") 
    .join(Product.class).as("p") 
     .on("u.Id = p.user") 
    .where("p.product_name = ?", productName) 
    .execute(); 
Смежные вопросы