Hello-
I'm actually a commercial user, but have a low-priority support question. I have generated bindings and I have code,
following the examples, like:
AmlTestResults tr = AML_TEST_RESULTS.as("tr");
create.insertInto(tr, tr.ID, tr.BANK_ID, tr.RUN_ID, tr.TEST_NAME, tr.TEST_SCORE)
.values(34L, 123, "T1", "ThisIsATest", -1000000).execute();However,
I see that this generates sql incorrectly. The table name is
AML_TEST_RESULTS but it creates the insert statement with the alias instead of the table name!
DEBUG Executing query : insert into [tr] ([id], [bank_id], [run_id], [test_name], [test_score]) values (?, ?, ?, ?, ?)
DEBUG -> with bind values : insert into [tr] ([id], [bank_id],
[run_id], [test_name], [test_score]) values (34, 123, 'T1',
'ThisIsATest', -1000000)
DEBUG Exception : Total: 81.936ms
DEBUG Finishing : Total: 83.077ms, +1.14ms
org.springframework.jdbc.UncategorizedSQLException: jOOQ; uncategorized
SQLException for SQL [insert into [tr] ([id], [bank_id], [run_id],
[test_name], [test_score]) values (?, ?, ?, ?, ?)]; SQL state [S0002];
error code [208]; Invalid object name 'tr'.; nested
exception is com.microsoft.sqlserver.jdbc.SQLServerException: Invalid
object name 'tr'.
at
org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:84)
at
org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)
at
org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)
at com.argodata.fraud.commons.database.mapping.JooqExceptionTranslator.exception(JooqExceptionTranslator.java:21)
at org.jooq.impl.ExecuteListeners.exception(ExecuteListeners.java:232)
at org.jooq.impl.AbstractQuery.execute(AbstractQuery.java:328)
at org.jooq.impl.AbstractDelegatingQuery.execute(AbstractDelegatingQuery.java:140)The workaround of doing create.insertInto(AML_TEST_RESULTS, tr.ID, ..) works fine, but it seems like I should be able to do the other as well, no?
Also, as a minor nit: in all of the documentation examples here
http://www.jooq.org/doc/3.3/manual/sql-building/sql-statements/insert-statement/
it never shows that you need to call .execute() at the end. This was
pretty obvious to debug, but still a minor annoyance for someone new to
jooq.
Thanks!
Steve Ash