Написание запроса с поиском ORMLite по столбцам

Я должен столбец User и MyDream. Мне нужно создать запрос с OrmLite с дисплеем my_dream по firebase_id. Это мой sql запрос

выберите my_dream_id, title_dream,descryption_dream,saveDataDream из MyDream, пользователя, где User.user_id = MyDream.user_user_id и User.firebaseId='56789'

Я не знаю, есть запрос на запись в Java

база данных столбцов

1 ответ

Решение

Прежде всего, вам нужно определить ваши классы:

public class User {
    @DatabaseField(id = true)
    private Integer user_id;
    @DatabaseField
    private String email;
    @DatabaseField
    private Integer firebase_id;
    @DatabaseField
    private String fullname;
    @DatabaseField
    private String photo_url;
    @ForeignCollectionField
    private LazyForeignCollection<Dream, Integer> dreams;
}

public class Dream {
    @DatabaseField(id = true)
    private Integer my_dream_id;
    @DatabaseField
    private String description_dream;
    @DatabaseField
    private ?? saveDataDream;
    @DatabaseField
    private String titleDream;
    @DatabaseField(columnName = "user_user_id", foreign = true)
    private User user;
}

Затем, как я уже просил, вам нужно использовать Join для запроса результатов

Это то же самое объяснение, но вот код вашего примера

Dao<User, Integer> userDao = DaoManager.createDao(getConnectionSource(), User.class);
Dao<Dream, Integer> dreamDao = DaoManager.createDao(getConnectionSource(), Dream.class);

QueryBuilder<User, Integer> userQa= userDao.queryBuilder();
userQa.where().eq("firebaseId", 56789);
QueryBuilder<Dream, Integer> dreamQa = dreamDao.queryBuilder();

users = userQa.join(dreamQa).query();

Тогда вы можете получить доступ к снам из объекта пользователя users.get(i).getDreams() с помощью iterator(), как это:

CloseableIterator<Dream> itDream = users.get(id).getDreams().closeableIterator();
try {
    while (itDream.hasNext()) {
        Dream dream = itDream.next();
    }
} finally {
    try {
        itDream.close();
    } catch (IOException e) {
        Log.e(TAG, "FAIL", e);
    }
}
Другие вопросы по тегам