Hi All
I am using openjpa-1.0.1 with H2 database. I have an entity which
contains the type byte []. I can create and add a value of a byte[] but
can't retrieve it as I get this error.
<openjpa-1.0.1-r420667:592145 nonfatal general error>
org.apache.openjpa.persistence.PersistenceException:
java.io.ByteArrayInputStream cannot be cast to [B
at org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:824)
at org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:723)
at
org.apache.openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:776)
at
org.apache.openjpa.jdbc.sql.AbstractResult.load(AbstractResult.java:257)
at
org.apache.openjpa.jdbc.sql.SelectImpl$SelectResult.load(SelectImpl.java:2168)
at
org.apache.openjpa.jdbc.sql.AbstractResult.load(AbstractResult.java:251)
at
org.apache.openjpa.jdbc.kernel.InstanceResultObjectProvider.getResultObject(InstanceResultObjectProvider.java:59)
at
org.apache.openjpa.kernel.QueryImpl.singleResult(QueryImpl.java:1289)
at org.apache.openjpa.kernel.QueryImpl.toResult(QueryImpl.java:1216)
at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:990)
at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:842)
at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:773)
at
org.apache.openjpa.kernel.DelegatingQuery.execute(DelegatingQuery.java:525)
at
org.apache.openjpa.persistence.QueryImpl.execute(QueryImpl.java:237)
at
org.apache.openjpa.persistence.QueryImpl.getSingleResult(QueryImpl.java:300)
at
veilig.util.db.DatabaseFunctionsTest.getApplication(DatabaseFunctionsTest.java:123)
A bit of googling suggests that I need to overwrite the H2 DBDictionary
value for UseGetObjectForBlobs to be false.
I tried adding this to my persistence.xml file like so <property
name="openjpa.jdbc.DBDictionary"
value="H2(useGetObjectForBlobs=false)"/> but then get the error H2 not
known.
What is the JDBC Dialect that I should be setting? Or Is there a default
DBDictonary that I should be using?
Thanks
David