在jOOQ的主页上有一个很好的例子:
create.select(BOOK.TITLE)
.from(BOOK)
.where(BOOK.PUBLISHED_IN.eq(2011))
.orderBy(BOOK.TITLE)
有没有一种方法可以使其更简洁?
我在想这样的事情:
create.select(TITLE)
.from(BOOK)
.where(PUBLISHED_IN.eq(2011))
.orderBy(TITLE)
答案 0 :(得分:2)
代码生成器中有一个不推荐使用的功能,称为<instanceFields>false</instanceFields>
,可用于在生成的表中生成静态字段引用。这样,您想做的事就可以了。
但是,在生成静态字段时存在许多缺点,主要是您将不再能够以类型安全的方式对表进行别名,例如:
Book b = BOOK.as("b");
create.select(b.TITLE)
.from(b)
.where(b.PUBLISHED_IN.eq(2011))
.orderBy(b.TITLE)
当然,您始终可以扩展开箱即用的代码生成器,以生成对所有表中所有非歧义列引用的附加静态引用,但是就像在SQL中一样,在添加联接或如果以前的明确引用突然变得模棱两可,则会在查询中添加其他列。