13

jOOQに次のクエリがあります。

factory()
.select()
.from(PERSON)
.join(ENDUSER).on(ENDUSER.PERSON_FK.equal(PERSON.ID))
.where(ENDUSER.ID.equal(userId))
.fetchOne();

このクエリは、PERSONとENDUSERのすべての列を含むレコードを返しますが、PERSONの列のみが必要です(そのため、配置し、配置.from(PERSON)しません.from(PERSON, ENDUSER))。それほど重要ではないことはわかっていますが、不要なフィールドが返されることは望ましくありません。

4

2 に答える 2

14

PERSON次のTable.fields()方法でのフィールドにアクセスできます。

factory()
.select(PERSON.fields()) // Or getFields() in jOOQ 2.x
.from(PERSON)
.join(ENDUSER)...

これは書くのとほぼ同じです

SELECT PERSON.*
FROM PERSON
JOIN ENDUSER ...

もう1つのオプションは、実際に人のすべてのフィールドを1つずつリストすることです。

于 2012-12-28T19:13:55.587 に答える