запрос ormlite с несколькими таблицами, в которых условия

Я хотел бы сделать что-то вроде этого:

    Select * from A join B where (A.a=x and B.b=y);

Я пробовал:

    qbA = aDao.queryBuilder();
    qbB = bDao.queryBuilder();
    whereA = qbA.where();
    whereB = qbB.where();
    join = qbA.join(qbB);
    whereJ = join.where();
    whereJ.and(whereA.eq(A.a, x), whereB.eq(B.b, y));

Это дает мне ошибку компиляции. Я также пытался использовать только соединения, например:

    whereJ.and(whereJ.eq(A.a=x), whereJ.eq(B.b=y));  

Я получил ошибку времени выполнения: «A не имеет атрибута 'b'».


person user1970277    schedule 11.01.2013    source источник


Ответы (1)


Да, вы не можете комбинировать такие утверждения. Вы должны сделать следующее:

whereA = qbA.where();
whereA.eq(A.a, x);
whereB = qbB.where();
whereB.eq(B.b, y);
join = qbA.join(qbB);

ORMLite должен позаботиться о выполнении AND и объединении двух разных операторов WHERE.

person Gray    schedule 18.01.2013
comment
Что, если мы хотим использовать ИЛИ вместо И при объединении операторов where? - person Faheem; 21.01.2014