I just recently updated my Java environment from 1.7 to 1.8. When I did
this, all of my current systems started failing due to the same SQL issue.
The insert statement is now including the column "id" which is of type
serial and is the only column in the primary key. Before, JOOQ did not
include the "id" column on inserts, which caused Postgresql 9.4 to
automatically get the next sequence value. Is there any way to fix this so
it stop sending over the id column in the inserts with a null value? Below
is an example of the code used to do the insert, along with the SQL and
error that is generated.
SessionsRecord r = db.newRecord(Tables.SESSIONS);
r.setToken(token);
r.setRemoteAddress(remoteAddress);
r.setCookieId(cookieId);
r.setMemberId(memberId);
r.setApplicationId(applicationId);
r.setGenerateCookie(generateCookie);
r.setSecondAuthenticationVerifiedOn(toTS(secondAuthenticationVerifiedOn));
r.setSystemApprovedOn(toTS(systemApprovedOn));
r.setCreatedOn(now);
r.setUpdatedOn(now);
r.store();
SQL [insert into "public"."sessions" ("cookie_id", "created_on",
"generate_cookie", "id", "member_id", "remote_address",
"second_authentication_verified_on", "system_approved_on", "token",
"updated_on") values (?, cast(? as timestamp), ?, ?, ?, ?, cast(? as
timestamp), cast(? as timestamp), ?, cast(? as timestamp)) returning
"public"."sessions"."id"]; ERROR: null value in column "id" violates
not-null constraint
Detail: Failing row contains (null, 2016-05-28 21:27:48.379, false, null,
null, null, null, null, null, null, 2016-05-28 21:27:48.379).
at org.jooq.impl.Tools.translate(Tools.java:1908)
at
org.jooq.impl.DefaultExecuteContext.sqlException(DefaultExecuteContext.java:659)
at org.jooq.impl.AbstractQuery.execute(AbstractQuery.java:362)
at
org.jooq.impl.TableRecordImpl.storeInsert0(TableRecordImpl.java:184)
at org.jooq.impl.TableRecordImpl$1.operate(TableRecordImpl.java:155)
at org.jooq.impl.RecordDelegate.operate(RecordDelegate.java:128)
at
org.jooq.impl.TableRecordImpl.storeInsert(TableRecordImpl.java:151)
at
org.jooq.impl.UpdatableRecordImpl.store0(UpdatableRecordImpl.java:195)
at
org.jooq.impl.UpdatableRecordImpl.access$000(UpdatableRecordImpl.java:85)
at
org.jooq.impl.UpdatableRecordImpl$1.operate(UpdatableRecordImpl.java:135)
at org.jooq.impl.RecordDelegate.operate(RecordDelegate.java:128)
at
org.jooq.impl.UpdatableRecordImpl.store(UpdatableRecordImpl.java:131)
at
org.jooq.impl.UpdatableRecordImpl.store(UpdatableRecordImpl.java:123)
at
com.bitdivvy.signer.server.dao.SessionDAO.insert(SessionDAO.java:226)
at
com.bitdivvy.signer.server.rest.SessionsEP.createSession(SessionsEP.java:73)
at
com.bitdivvy.signer.server.servlets.BasePage.createSession(BasePage.java:34)
at
com.bitdivvy.signer.server.servlets.MainWebPage.getJAXBObject(MainWebPage.java:25)
at
com.bitdivvy.signer.server.servlets.ObjectPage.doGet(ObjectPage.java:27)
at javax.servlet.http.HttpServlet.doHead(HttpServlet.java:244)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:645)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:522)
at
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1095)
at
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672)
at
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1502)
at
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1458)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.postgresql.util.PSQLException: ERROR: null value in column
"id" violates not-null constraint
Detail: Failing row contains (null, 2016-05-28 21:27:48.379, false, null,
null, null, null, null, null, null, 2016-05-28 21:27:48.379).
at
org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2270)
at
org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1998)
at
org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255)
at
org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:570)
at
org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:420)
at
org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:305)
at
com.zaxxer.hikari.pool.ProxyPreparedStatement.executeQuery(ProxyPreparedStatement.java:52)
at
com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeQuery(HikariProxyPreparedStatement.java)
at
org.jooq.tools.jdbc.DefaultPreparedStatement.executeQuery(DefaultPreparedStatement.java:83)
at org.jooq.impl.AbstractDMLQuery.execute(AbstractDMLQuery.java:425)
at org.jooq.impl.AbstractQuery.execute(AbstractQuery.java:348)
... 38 more
--
You received this message because you are subscribed to the Google Groups "jOOQ
User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.