這裏是我的代碼部分:JPA原生查詢設置空參數
Query q = em.createNativeQuery("insert into table_name (value_one, value_two, value_three) values (?,?,?)");
q.setParameter(1, value1);
q.setParameter(2, value2);
q.setParameter(3, value3);
q.executeUpdate();
value3
有時可以爲空(Date類對象)。而如果是空以下異常被拋出:
Caused by: org.postgresql.util.PSQLException: ERROR: column "value_three" is of type timestamp without time zone but expression is of type bytea
Hint: You will need to rewrite or cast the expression.
Position: 88
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2102)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1835)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:500)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:388)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:334)
at org.hibernate.engine.query.NativeSQLQueryPlan.performExecuteUpdate(NativeSQLQueryPlan.java:189)
... 11 more
怎麼可能得到這個代碼工作,堅持空值到數據庫?
什麼是您的數據庫?你能直接執行查詢嗎? – Soosh
你在數據庫中檢查列是否確實允許NULL?另外,請檢查實體中的字段是否用'@Column(nullable = true)'註解? –
** PostgreSQL 9.2。**是的,我可以直接這樣做:'insert into table_name(value_one,value_two,value_three)values('test','test',NULL);' –