標準のDAOとストレートSQLの代わりにJOOQを使用するように切り替えており、このSQLをJOOQコンテキストに変換しようとしています:
products は、MySQL 5.6 では INT(4) フィールドとして定義されています。
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);
私が理解できないように見えるのは、(products & 255) ビット単位の操作を行う方法です。