Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Cómo generar una consulta con la selección por valor del campo del objeto extraño

¿Cuál es la mejor manera de consultar usando el valor del campo del objeto extraño?

Supongamos que tengo estas tres clases.

UnitResult que describe la cantidad de Unidades:

@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; } 

Clase de unidades que describe ciertas Unidades en un mercado (por ejemplo, jiuce, snack, etc.):

 @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; } 

Y Enum of Tipo de la unidad:

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

Entonces, ¿cómo puedo consultar todos los UnitResult donde el tipo de Unit es UnitType.JUICES ?

One Solution collect form web for “Cómo generar una consulta con la selección por valor del campo del objeto extraño”

Entonces, ¿cómo puedo consultar todos los UnitResult donde el tipo de unidad es UnitType.JUICES?

La forma de hacerlo en ORMLite es usar el `Where.in (…) con una sub-consulta :

 // 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(); 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.