title: Using JOOQ just to store table/column names and types with no regard to Record types
body: <p>I'm currently evaluating <code>JOOQ</code> because I believe I started reinventing the wheel which looks very close to part of <code>JOOQ</code> :)</p>
  
  <p>Now, while digging in great <code>JOOQ</code> documentation I've found that my use case lies somewhere between <a href="http://www.jooq.org/doc/3.2/manual/getting-started/use-cases/jooq-as-a-standalone-sql-builder/" rel="nofollow">Using JOOQ as SQL Builder</a> and <a href="http://www.jooq.org/doc/3.2/manual/getting-started/use-cases/jooq-as-a-sql-builder-with-code-generation/" rel="nofollow">Using JOOQ as SQL Builder with Code generation</a> i.e. I would like to:</p>
  
  <ol>
  <li>Create plain SQL strings like it is shown in <a href="http://www.jooq.org/doc/3.2/manual/getting-started/use-cases/jooq-as-a-standalone-sql-builder/" rel="nofollow">Using JOOQ as SQL Builder</a> part</li>
  <li>Instead of using hard-coded <code>DSL.fieldByName("BOOK","TITLE")</code> constructs, I prefer storing name of a table along with it's column names and types like it's shown in <a href="http://www.jooq.org/doc/3.2/manual/getting-started/use-cases/jooq-as-a-sql-builder-with-code-generation/" rel="nofollow">Using JOOQ as SQL Builder with Code generation</a> part</li>
  <li>I prefer not to use code generation (at least not on regular basis), but rather creating <code>TableImpl</code> myself when new table is needed.</li>
  </ol>
  
  <p>While digging in manual, I've found how table implementation should look like in chapter <a href="http://www.jooq.org/doc/3.2/manual/code-generation/codegen-tables/" rel="nofollow">Generated tables</a>. However, <a href="http://www.jooq.org/javadoc/latest/org/jooq/impl/TableImpl.html" rel="nofollow">TableImpl</a> class as well as <a href="http://www.jooq.org/javadoc/latest/org/jooq/Table.html" rel="nofollow">Table</a> interface should be parameterized with record type and the same goes for <a href="http://www.jooq.org/javadoc/latest/org/jooq/TableField.html" rel="nofollow">TableField</a> class. I believe this is done for easier type inference when directly querying database and retrieving results, though I may be mistaken.</p>
  
  <p>So my questions are:</p>
  
  <ol>
  <li>Is there a guide in manual on how to create <a href="http://www.jooq.org/javadoc/latest/org/jooq/Table.html" rel="nofollow">Table</a> and <a href="http://www.jooq.org/javadoc/latest/org/jooq/TableField.html" rel="nofollow">TableField</a> implementations? Or I can simply generate them once for my database schema and use generated code as a guideline?</li>
  <li>How can I gracefully "discard" record type parameters in implemented classes? First, I thought about using <code>java.lang.Void</code> class as type parameter but then I noticed that only subclasses of <a href="http://www.jooq.org/javadoc/latest/org/jooq/Record.html" rel="nofollow">Record</a> are allowed... The reason is that I don't need record types at all because I plan to use generated by <code>JOOQ</code> SQL queries in something like <a href="http://docs.spring.io/spring/docs/2.0.x/api/org/springframework/jdbc/core/JdbcTemplate.html" rel="nofollow">Spring JdbcTemplate</a> so mapping is done by myself.</li>
  </ol>
  
  <p>Thanks in advance for any help!</p>