2011-09-04 12 views
13

quiero crear una combinación interna en tres tablas como éste por ejemplo:Ormlite combinación interna en tres mesas

SELECT C.Description, D.ItemDescription 
    FROM OrderDetailStatement AS D 
INNER JOIN OrderHeaderStatement AS H 
    ON H.OrderHeaderStatementRefID = D.OrderHeaderStatementRefID 
INNER JOIN customers AS C 
    ON H.CustomerRefID = C.CustomerRefID 
WHERE (D.MixedValue > 1000) 

pero estoy un poco confundido, ¿podría por favor me proporcione un tutorial?

gracias de antemano

+0

publique el error que está recibiendo? –

+0

Acabo de probar con sql puro, porque todavía no lo entiendo, cómo escribir la consulta usando ormlite o el nombre del sitio. Solo necesito un ejemplo. Cualquier ejemplo que involucre 3 tablas. – Antonis

+1

Tenga en cuenta que estamos agregando compatibilidad básica JOIN en 4.42 @Antonis. He actualizado mi respuesta. – Gray

Respuesta

34

ORMLite ahora es compatible con simple JOIN statements. Usted puede hacer algo como lo siguiente:

// start the order header query 
QueryBuilder<OrderHeader, Integer> orderHeaderQb = orderHeaderDao.queryBuilder(); 
QueryBuilder<Customer, Integer> customerQb = customerDao.queryBuilder(); 
// join with the order query 
orderHeaderQb.join(customerQb); 
// start the order statement query 
QueryBuilder<OrderStatement, Integer> orderStatementQb = 
    orderStatementDao.queryBuilder(); 
orderStatementQb.where().gt("mixedvalue", 100); 
// join with the order-header query 
orderStatementQb.join(orderHeaderQb); 
List<OrderStatement> orderStatementQb.query(); 

Nótese, sin embargo, que sólo se puede obtener entidades del generador de consultas mediante este mecanismo. Si desea obtener sus dos campos de descripción de diferentes objetos, deberá utilizar una consulta en bruto.

Hay soporte para "consultas sin procesar", incluido el método Dao.queryRaw() donde puede usar su propio SQL. Sospecho que ya los encontraste. Aquí están los docs for raw queries.

+0

¡Muchas gracias, Gray! Por cierto, ¡gracias por ORMLite! – Antonis

+0

OK, eso es una gran noticia! – Antonis

+0

http://ormlite.com/javadoc/ormlite-core/doc-files/ormlite_3.html#index-select-arguments – LuminiousAndroid

Cuestiones relacionadas