Hibernate 3.6.0.Final + PostgreSQL + CLOBs

I recently upgraded a project I'm working on to Hibernate 3.6.0.Final from 3.5.6 and realized that one of my entities that had a CLOB (character large object) was pooping out. I was getting an exception stack track similar to: Caused by: org.postgresql.util.PSQLException: Bad value for type long : <table border="0" cellspacing="0" cellpadding="0" id="productDetailLineItems"><thead><tr><td rowspan="2"><input type="hidden" name="productGroupId" id="productGroupId" value="101111"/>Item Number</td><td rowspan="2">Motor HP</td><td rowspan="2">Price</td></tr></thead><tbody><tr><form method="post" id="4581000" name="4581000" action><td>4581000</td><td><span style="fraction"><sup>1</sup>/<sub>2</sub></span></td><td><input type="button" onclick="javascript:addToCart('4581000');" value="$prc4581000" /></td></form></tr></tbody></table>at org.postgresql.jdbc2.AbstractJdbc2ResultSet.toLong(AbstractJdbc2ResultSet.java:2690) [:]at org.postgresql.jdbc2.AbstractJdbc2ResultSet.getLong(AbstractJdbc2ResultSet.java:1995) [:]at org.postgresql.jdbc3.Jdbc3ResultSet.getClob(Jdbc3ResultSet.java:44) [:]at org.postgresql.jdbc2.AbstractJdbc2ResultSet.getClob(AbstractJdbc2ResultSet.java:373) [:]at org.jboss.resource.adapter.jdbc.WrappedResultSet.getClob(WrappedResultSet.java:516) [:6.0.0.Final]at org.hibernate.type.descriptor.sql.ClobTypeDescriptor$2.doExtract(ClobTypeDescriptor.java:70) [:3.6.0.Final]at org.hibernate.type.descriptor.sql.BasicExtractor.extract(BasicExtractor.java:64) [:3.6.0.Final]at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:253) [:3.6.0.Final]at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:249) [:3.6.0.Final]at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:229) [:3.6.0.Final]at org.hibernate.type.AbstractStandardBasicType.hydrate(AbstractStandardBasicType.java:330) [:3.6.0.Final]at org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:2265) [:3.6.0.Final]at org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1527) [:3.6.0.Final]at org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1455) [:3.6.0.Final]at org.hibernate.loader.Loader.getRow(Loader.java:1355) [:3.6.0.Final]at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:611) [:3.6.0.Final]at org.hibernate.loader.Loader.doQuery(Loader.java:829) [:3.6.0.Final]at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:274) [:3.6.0.Final]at org.hibernate.loader.Loader.loadEntity(Loader.java:2037) [:3.6.0.Final]... 167 more ...

January 6, 2011 · 2 min · Aaron

Flush THIS Hibernate!

I've been working with Hibernate 3.3.2 and Hibernate Search 3.1 for the past few months. We finally got to a point in our project where we are sucking in mass amounts of data into our application from a large business application via JMS. Suddenly, I'm getting the following errors during persistence: org.hibernate.AssertionFailure: collection [ class name here ] was not processed by flush() I tried changing the owning side of the collection, made a join table, and nothing helped. The error started when I added an @IndexEmbedded annotation to the collection, and I discovered I was missing the @ContainedIn annotation in the collection entity. That didn't fix it. After weeks of doing little tweaks, breaking, fixing, breaking, fixing, I finally discovered the problem. I was using an older manual for Hibernate Search (3.0 specifically) and I had the following configuration parameter pushed into my SessionFactory: ...

June 12, 2010 · 1 min · Aaron

Spring 3.0 + Hibernate 3.3.2 + JBoss Cache 2 + JTA = Fail

I've spent the past two days trying to get a distributed secondary Hibernate cache working with a Spring 3 application. The application is web-based running on JBoss 5.1 so I figured the best approach would be to use JBoss Cache, since it's automatically configured and available in JNDI when you use the "all" configuration. Hibernate 3.3.2 is configured inside of Spring using the Annotation-based session factory bean. Because I'm using JTA to manage transactions and Hibernate's current session, I need to make sure that the secondary cache, whatever I choose, is aware of the transaction manager. I originally had EHCache 2.0.1 hooked into Hibernate via Hibernate configuration parameters passed into Spring's bean. I was not setting the cache factory parameter on this bean. Everything works fine in this configuration and it recognizes the JTA transactions. ...

April 14, 2010 · 3 min · Aaron