我有一堆连接表的查询,并且传统上使用aliasToBean结果转换器来实现此目的。但是,最近要求我将CLOB粘贴到这个bean中。我将它映射到一个字符串(虽然我也尝试了对象,但也没有工作)。错误是:
Caused by: java.lang.IllegalArgumentException: argument type mismatch
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.6.0]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60) ~[?:1.6.0]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) ~[?:1.6.0]
at java.lang.reflect.Method.invoke(Method.java:611) ~[?:1.6.0]
at org.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:68) ~[hibernate-core-4.3.0.Final.jar:4.3.0.Final]
at org.hibernate.transform.AliasToBeanResultTransformer.transformTuple(AliasToBeanResultTransformer.java:94) ~[hibernate-core-4.3.0.Final.jar:4.3.0.Final]
我在网上看到一篇帖子(http://javatechtricks.blogspot.com/2012/12/hibernate-clob-to-string-conversion.html),其中有人说Hibernate的结果转换器因为潜在的内存问题而选择不使用CLOB。但大多数时候,我的领域真的不会那么大。几个Kb会尽可能大。他指出了他自己的结果转换器来转换clobs ...但它不起作用。它给出错误“com.ibm.db2.jcc.a.SqlException:[jcc] [10120] [11936] [4.3.111]无效操作:Lob关闭.ERRORCODE = -4470,SQLSTATE = null”每次调用时getAsciiStream()。
我该如何做到这一点?