1
我們只是切換到位標準DAO和直接的SQL的使用JOOQ,我想這個SQL轉換爲JOOQ方面:JOOQ MySQL的按位
產品在MySQL的定義爲INT(4)場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 –