ORMLite – Consulta de campo externo
Utilizando ORMLite para Android, necesito crear una consulta que devuelva pedidos por orden de identificación o por nombre de cliente. Tenga en cuenta las siguientes declaraciones de clase:
@DatabaseTable(tableName = "order") public class Order { @DatabaseField(generatedId = true) private Long id; @DatabaseField(foreign = true, canBeNull = false, foreignAutoRefresh = true, columnName = "customer_id") private Customer customer; // default constructor, getters and setters... } @DatabaseTable(tableName = "customer") public class Customer { @DatabaseField(generatedId = true) private Long id; @DatabaseField private String name; // default constructor, getters and setters... }
El SQL en bruto que estoy buscando sería algo como esto:
- ¿Cómo eliminar una base de datos ORMLite?
- Cómo actualizar la columna con ORMLite
- Consulta de ORMLite con cotización, Android
- "Ya añadido" excepción con ormlite y gradle
- Calendario .YEAR, .MONTH, DAY_OF_MONTH diferente de date.getDay () etc?
SELECT o.* FROM order o JOIN customer c on o.customer_id = c.id WHERE (o.id = ?) OR (c.name = ?)
¿Cuál es la mejor manera de hacer esto usando ORMLite?
- Configurar Gradle para ejecutar ejecutable Java en Android Studio
- Cómo probar android con ormlite proyecto
- ORMLite - Cómo manejar el resultado de unirse
- Múltiples claves primarias - ORMlite
- Android - ORMlite vs ActiveAndroid diferencias?
- Android - Código de error 11 al importar la base de datos Sqlite en Galaxy Note
- ¿Cómo puedo restablecer un número de secuencia autoincrement en sqlite
- Consulta compleja con SQL COUNT y SUM
ORMLite ahora admite consultas de unión sencillas .
Así que su consulta sería algo así como:
QueryBuilder<Customer, Integer> customerQb = customerDao.queryBuilder(); SelectArg nameSelectArg = new SelectArg(); // this gives the c.name = ? customerQb.where().eq("name", nameSelectArg); QueryBuilder<Account, Integer> orderQb = orderDao.queryBuilder(); SelectArg idSelectArg = new SelectArg(); // this gives the o.id = ? orderQb.where().eq("id", idSelectArg); orderQb.join(customerQb); // then you set the args and run the query nameSelectArg.setValue("jim"); idSelectArg.setValue(1); List<Order> results = orderQb.join(customerQb).query();
No, los complementos son compatibles en ORMLite https://stackoverflow.com/a/7320091/323128 Sin embargo, esta referencia le dará una visión de cómo completar su tarea
- Android: Google Map no muestra
- Activity.showDialog cuando la actividad puede no estar en primer plano