指定没有表格的字段

时间:2019-05-12 17:09:22

标签: java jooq

在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)

1 个答案:

答案 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中一样,在添加联接或如果以前的明确引用突然变得模棱两可,则会在查询中添加其他列。