You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-user@db.apache.org by gf...@fys.com.ar on 2004/03/08 16:55:22 UTC
String Array storing problem in HSQL
Hi, first of all, sorry of my english...
I'm having a problem storing a String array in a column in a HSQLDB
database.
The repository mapping i'm using is the folowing:
<class-descriptor class="ar.com.fys.campo.app.entidades.RubroImpl"
table="Rubro">
.
.
<field-descriptor column="rubCamposModific" jdbc-type="BLOB"
name="camposModif"
conversion="org.apache.ojb.broker.accesslayer.conversions.Object2ByteArrFieldConversion"/>
.
</class-descriptor>
And in the database the field type is OBJECT.
What's the problem?
Thanks.
Matias.
The error is:
org.apache.ojb.broker.PersistenceBrokerSQLException: SQL failure while
insert object data for class ar.com.fys.campo.app.entidades.RubroImpl, PK
of the given object is [ OID=F0B29418-C3CC-EC02-FCE6-716798B48ABC], object
was ar.com.fys.campo.app.entidades.Rubro:
F0B29418-C3CC-EC02-FCE6-716798B48ABC, exception message is [This function
is not supported: 2004]
at
org.apache.ojb.broker.accesslayer.JdbcAccessImpl.executeInsert(JdbcAccessImpl.java:281)
at
org.apache.ojb.broker.core.PersistenceBrokerImpl.storeToDb(PersistenceBrokerImpl.java:1461)
at
org.apache.ojb.broker.core.PersistenceBrokerImpl.store(PersistenceBrokerImpl.java:1378)
at
org.apache.ojb.broker.core.PersistenceBrokerImpl.store(PersistenceBrokerImpl.java:730)
at
org.apache.ojb.broker.core.DelegatingPersistenceBroker.store(DelegatingPersistenceBroker.java:165)
at
org.apache.ojb.broker.core.DelegatingPersistenceBroker.store(DelegatingPersistenceBroker.java:165)
at
ar.com.fys.campo.app.servidor.controller.ControladorBD.grabar(ControladorBD.java:78)
at
ar.com.fys.campo.app.servidor.useCase.GrabandoRubro.ejecuta(GrabandoRubro.java:54)
at
ar.com.fys.campo.app.servidor.useCase.AccionFSC.validaCredencial(AccionFSC.java:57)
at
ar.com.fys.campo.app.servidor.useCase.AccionFSC.<init>(AccionFSC.java:21)
at
ar.com.fys.campo.app.servidor.useCase.GrabandoRubro.<init>(GrabandoRubro.java:28)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
at
ar.com.fys.campo.app.utils.EjecutaMetodos.runMetodo(EjecutaMetodos.java:29)
at
ar.com.fys.campo.app.servidor.controller.ControladorApp.ejecutaCasoUsoServer(ControladorApp.java:133)
at
ar.com.fys.campo.app.servidor.controller.ControladorApp.ejecutaCasoUsoServer(ControladorApp.java:114)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:261)
at sun.rmi.transport.Transport$1.run(Transport.java:148)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:144)
at
sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460)
at
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701)
at java.lang.Thread.run(Thread.java:536)
Caused by: java.sql.SQLException: This function is not supported: 2004
at org.hsqldb.Trace.getError(Unknown Source)
at org.hsqldb.Trace.error(Unknown Source)
at org.hsqldb.Column.convertString(Unknown Source)
at org.hsqldb.Column.convertObject(Unknown Source)
at org.hsqldb.jdbcPreparedStatement.setObject(Unknown Source)
at
org.apache.ojb.broker.platforms.PlatformDefaultImpl.setObjectForStatement(PlatformDefaultImpl.java:266)
at
org.apache.ojb.broker.accesslayer.StatementManager.bindInsert(StatementManager.java:488)
at
org.apache.ojb.broker.accesslayer.JdbcAccessImpl.executeInsert(JdbcAccessImpl.java:232)
... 28 more
Re: String Array storing problem in HSQL (FIXED)
Posted by gf...@fys.com.ar.
Just fixed it.
Wrong data type
It work this way:
<field-descriptor column="rubCamposModif" jdbc-type="VARBINARY"
name="camposModif"
conversion="org.apache.ojb.broker.accesslayer.conversions.Object2ByteArrFieldConversion"/>
Database data type is BINARY.
Thanks.
Gustavo.
gfaerman@fys.com.ar
08/03/2004 12:55 p.m.
Please respond to
"OJB Users List" <oj...@db.apache.org>
To
"OJB Users List" <oj...@db.apache.org>
cc
Subject
String Array storing problem in HSQL
Hi, first of all, sorry of my english...
I'm having a problem storing a String array in a column in a HSQLDB
database.
The repository mapping i'm using is the folowing:
<class-descriptor class="ar.com.fys.campo.app.entidades.RubroImpl"
table="Rubro">
.
.
<field-descriptor column="rubCamposModific" jdbc-type="BLOB"
name="camposModif"
conversion="org.apache.ojb.broker.accesslayer.conversions.Object2ByteArrFieldConversion"/>
.
</class-descriptor>
And in the database the field type is OBJECT.
What's the problem?
Thanks.
Matias.
The error is:
org.apache.ojb.broker.PersistenceBrokerSQLException: SQL failure while
insert object data for class ar.com.fys.campo.app.entidades.RubroImpl, PK
of the given object is [ OID=F0B29418-C3CC-EC02-FCE6-716798B48ABC], object
was ar.com.fys.campo.app.entidades.Rubro:
F0B29418-C3CC-EC02-FCE6-716798B48ABC, exception message is [This function
is not supported: 2004]
at
org.apache.ojb.broker.accesslayer.JdbcAccessImpl.executeInsert(JdbcAccessImpl.java:281)
at
org.apache.ojb.broker.core.PersistenceBrokerImpl.storeToDb(PersistenceBrokerImpl.java:1461)
at
org.apache.ojb.broker.core.PersistenceBrokerImpl.store(PersistenceBrokerImpl.java:1378)
at
org.apache.ojb.broker.core.PersistenceBrokerImpl.store(PersistenceBrokerImpl.java:730)
at
org.apache.ojb.broker.core.DelegatingPersistenceBroker.store(DelegatingPersistenceBroker.java:165)
at
org.apache.ojb.broker.core.DelegatingPersistenceBroker.store(DelegatingPersistenceBroker.java:165)
at
ar.com.fys.campo.app.servidor.controller.ControladorBD.grabar(ControladorBD.java:78)
at
ar.com.fys.campo.app.servidor.useCase.GrabandoRubro.ejecuta(GrabandoRubro.java:54)
at
ar.com.fys.campo.app.servidor.useCase.AccionFSC.validaCredencial(AccionFSC.java:57)
at
ar.com.fys.campo.app.servidor.useCase.AccionFSC.<init>(AccionFSC.java:21)
at
ar.com.fys.campo.app.servidor.useCase.GrabandoRubro.<init>(GrabandoRubro.java:28)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
at
ar.com.fys.campo.app.utils.EjecutaMetodos.runMetodo(EjecutaMetodos.java:29)
at
ar.com.fys.campo.app.servidor.controller.ControladorApp.ejecutaCasoUsoServer(ControladorApp.java:133)
at
ar.com.fys.campo.app.servidor.controller.ControladorApp.ejecutaCasoUsoServer(ControladorApp.java:114)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:261)
at sun.rmi.transport.Transport$1.run(Transport.java:148)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:144)
at
sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460)
at
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701)
at java.lang.Thread.run(Thread.java:536)
Caused by: java.sql.SQLException: This function is not supported: 2004
at org.hsqldb.Trace.getError(Unknown Source)
at org.hsqldb.Trace.error(Unknown Source)
at org.hsqldb.Column.convertString(Unknown Source)
at org.hsqldb.Column.convertObject(Unknown Source)
at org.hsqldb.jdbcPreparedStatement.setObject(Unknown Source)
at
org.apache.ojb.broker.platforms.PlatformDefaultImpl.setObjectForStatement(PlatformDefaultImpl.java:266)
at
org.apache.ojb.broker.accesslayer.StatementManager.bindInsert(StatementManager.java:488)
at
org.apache.ojb.broker.accesslayer.JdbcAccessImpl.executeInsert(JdbcAccessImpl.java:232)
... 28 more