Мы просто переход к использованию JOOQ вместо стандартного DAO и прямой SQL, и я пытаюсь преобразовать этот SQL в JOOQ контексте:JOOQ MySQL побитовое
продукция определяется как INT (4) поля в MySQL 5.6.
SELECT DISTINCT f1
FROM table_A WHERE
(f1 IS NOT NULL)
AND (products & 255)
AND (age <= 180)
AND (flag < 1)
ORDER BY f1;
версия JOOQ:
context.selectDistinct(TABLE_A.F1).from(TABLE_A).where(TABLE_A.F1.isNotNull())
.and(TABLE_A.flag.lessthan(UInteger.valueof(1))
.and(TABLE_A.age.lessthan(UInteger.valueof(180))
.orderBy(TABLE_A.f1);
То, что я не могу показаться, чтобы выяснить, как сделать (продукты & 255) операцию побитового.
Почему некоторые функции JOOQ скрыты внутри пакета DSL? – awm
Я не уверен, что вы имеете в виду? 'DSL' - это класс и содержит всевозможные функции, которые вы можете статически импортировать в своих Java-классах. Другими словами, они совсем не «скрыты», они полностью раскрыты :-) См. Также: http://www.jooq.org/doc/3.2/manual/sql-building/dsl. Я думаю, что это могло бы быть полезно, хотя, если побитовые операции также поддерживались в «инфиксной нотации». Я увижу, что это будет добавлено в jOOQ 3.3: https://github.com/jOOQ/jOOQ/issues/2848 –