Qual è il modo migliore per eseguire query utilizzando il valore del campo dell'oggetto estraneo?Come creare una query con la selezione per valore del campo di un oggetto estraneo
Supponiamo di avere queste tre classi.
classeUnitResult che descrive importo delle unita:
@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;
}
classe
Unità che descrive alcune unità in un mercato (per esempio jiuce, spuntino 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;
}
E Enum di tipo Unità :
public enum UnitType {
JUICES,
DRINKS,
SNACKS,
NPD;
}
Così come posso interrogare tutti UnitResult
doveIl tipoè UnitType.JUICES
?
ringrazio molto, Grey! E rispetto per la libreria OrmLite! :) – Yarovoy
Questo sembra non funzionare più. Poiché la colonna id viene aggiunta automaticamente alla query, genera "SQLException, la query interna deve avere solo 1 colonna di selezione specificata anziché *". –
Follow-up: Credo che l'intento sia che ora usi un join. –