Intereting Posts
Блокировка ориентации экрана (Android) Android Proguard – исключение IllegalArgumentException в классе TypeReference от Jackson Android – отправка сообщения обработчику мертвой нити, ошибка Toast Заголовок панели инструментов с пользовательским представлением Использовать firefox как средство рендеринга для веб-просмотра Android Создайте версию apk с настройкой формата имени в Android Studio Как проигрывать потоковое аудио в фоновом режиме на Android? Сообщение Amazon AppStore Failed: «Чувствительная информация, такая как пароль, отражается в открытом тексте без шифрования» Воспроизведение видео дает черный экран, но со звуком Объем мультимедиа вместо громкости телефона в Android Данные в onActivityResult равны нулю Слайд загрузки изображений каждый раз при прокрутке recycliewiew Обход решения для приема системных передач с приложением, установленным на SD-карту? Как сделать уведомление в Facebook как Messenger в Android Не удалось создать приложение com.android.tools.fd.runtime.BootstrapApplication?

Как создать запрос с выбором значения поля постороннего объекта

Каков наилучший способ запроса с использованием значения поля постороннего объекта?

Предположим, что у меня есть эти три класса.

Класс UnitResult, который описывает количество единиц:

@DatabaseTable public class UnitResult { public static final String ID_FIELD_NAME = "id"; public static final String UNIT_COLUMN_NAME = "unit"; public static final String RESULT_COLUMN_NAME = "result"; @DatabaseField(generatedId = true, columnName = ID_FIELD_NAME) public Integer id; @DatabaseField(foreign = true, canBeNull = false, columnName = UNIT_COLUMN_NAME) public Unit unit; @DatabaseField(canBeNull = true, columnName = RESULT_COLUMN_NAME) public Integer result = null; } 

Класс единицы, который описывает определенные единицы на рынке (например, jiuce, snack и т. Д.):

 @DatabaseTable public class Unit { public static final String ID_FIELD_NAME = "id"; public static final String TYPE_FIELD_NAME = "type"; @DatabaseField(id = true, columnName = ID_FIELD_NAME) public int id; @DatabaseField(canBeNull = false, columnName = TYPE_FIELD_NAME) public UnitType type; } 

И Enum of Unit тип:

 public enum UnitType { JUICES, DRINKS, SNACKS, NPD; } 

Итак, как я могу запросить все UnitResult где тип UnitUnitType.JUICES ?

Solutions Collecting From Web of "Как создать запрос с выбором значения поля постороннего объекта"

Итак, как я могу запросить все UnitResult, где тип Unit – UnitType.JUICES?

Способ сделать это в ORMLite – использовать `Where.in (…) с подзапросом :

 // setup our sub-query on the Unit table first QueryBuilder<Unit,Integer> uQb = unitDao.queryBuilder(); uQb.where().eq(Unit.TYPE_FIELD_NAME, UnitType.JUICES); // outer query on UnitResult table QueryBuilder<UnitResult,Integer> urQb = unitResultDao.queryBuilder(); // in using the sub-query urQb.where().in(UnitResult.UNIT_COLUMN_NAME, uQb); List<UnitResult> results = urQb.query();