Cómo construir una consulta seleccionando por valor el campo de un objeto extraño

¿Cuál es la mejor forma de realizar consultas utilizando el valor del campo de objeto extraño?

Supongamos que tengo estas tres clases.

Clase de 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 unidad 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 de tipo de unidad:

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

Entonces, ¿cómo puedo consultar todosUnitResult dóndeUnit tipo esUnitType.JUICES?

Respuestas a la pregunta(1)

Su respuesta a la pregunta