我正在使用postgresql
,我的一个列的类型为json
。更新json类型的列值失败,出现异常
我正在使用REST API,我得到的响应是一个json字符串,我将其存储在那个json
列中。
使用Hibernate,我无法对此列进行更新。
注意:我使用google Gson
使它成为一个JSON并将其存储到数据库。
例子:
Gson gson = new Gson();
myBean.setJsonData(gson.toJson(response));
myHomeDao.attachDirty(myBean); //Error Here
LOG:
Caused by: org.postgresql.util.PSQLException: ERROR: column json_data" is of type json but expression is of type bytea
Hint: You will need to rewrite or cast the expression.
Position: 247
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2198)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1927)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:561)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:419)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:365)
at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:208)
... 16 more
发布myHomeDao.attachDirty代码请 – 2015-04-01 13:17:49
这是自动生成的hibernate代码生成过程,并且对其他列工作正常。代码 - 'Transaction trans = sessionFactory.getCurrentSession()。beginTransaction(); \t \t \t sessionFactory.getCurrentSession()。saveOrUpdate(instance); \t \t \t \t trans.commit();' – 2015-04-01 13:20:55