Hi,
I?ve a trouble with a m:n decomposed relation. I?ve an Action and a
Repository tables and a Permissions table. I create en new object Permiso
and set the Accion and Repositorio objects, then I?ve db.makePersistent(
Permiso ), OJB works fine and insert all Permiso's in PERMISOS table. When I
try "select allactions from " + Action.class.getName() or "select
allrepositories from " + Repositorio.class.getName() OJB raise and
exception,
[org.apache.ojb.broker.accesslayer.SqlGenerator] DEBUG: SQL: SELECT
MAX_KEY,TABLENAME,GRAB_SIZE,FIELDNAME FROM OJB_HL_SEQ WHERE
(OJB_HL_SEQ.TABLENAME = ? ) AND (OJB_HL_SEQ.FIELDNAME = ? )
[org.apache.ojb.broker.accesslayer.JdbcAccess] DEBUG: executeUpdate :
org.apache.ojb.broker.util.sequence.HighLowSequence@f11b8
[org.apache.ojb.broker.accesslayer.SqlGenerator] DEBUG: SQL: UPDATE
OJB_HL_SEQ SET MAX_KEY=?, GRAB_SIZE=? WHERE (OJB_HL_SEQ.TABLENAME = ? ) AND
(OJB_HL_SEQ.FIELDNAME = ? )
[org.apache.ojb.broker.accesslayer.RsIterator] DEBUG: RsIterator(Query from
class Accion where null, table: ACCIONES
FieldDescriptions:
[Lorg.apache.ojb.broker.metadata.FieldDescriptor;@7e748f)
[org.apache.ojb.broker.accesslayer.JdbcAccess] DEBUG: executeQuery : Query
from class Accion where null
[org.apache.ojb.broker.accesslayer.SqlGenerator] DEBUG: SQL: SELECT
A0.STEXTOMENU,A0.IDACCION,A0.MENU,A0.IDPADRE,A0.SPATH,A0.TACCION,A0.ICONO,A0
.SDESCRIPCION FROM ACCIONES A0
[org.apache.ojb.broker.accesslayer.RsIterator] DEBUG: hasNext() -> true
[org.apache.ojb.broker.accesslayer.RsIterator] DEBUG: RsIterator(Query from
class Permiso where idAccion = ? , table: PERMISOS2
FieldDescriptions: [Lorg.apache.ojb.broker.metadata.FieldDescriptor;@1a64ed)
[org.apache.ojb.broker.accesslayer.JdbcAccess] DEBUG: executeQuery : Query
from class Permiso where idAccion = ?
[org.apache.ojb.broker.accesslayer.SqlGenerator] DEBUG: SQL: SELECT
A0.IDACCION,A0.IDREPOSITORIO FROM PERMISOS2 A0 WHERE A0.IDACCION = ? ORDER
BY 1
[org.apache.ojb.broker.accesslayer.RsIterator] DEBUG: hasNext() -> true
org.apache.ojb.broker.PersistenceBrokerException: Unable to build object
instance :class Permiso
at
org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.buildWithReflection(U
nknown Source)
at
org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.readObjectFrom(Unknow
n Source)
at
org.apache.ojb.broker.accesslayer.RsIterator.getObjectFromResultSet(Unknown
Source
) at org.apache.ojb.broker.accesslayer.RsIterator.next(Unknown Source
) at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Un
known Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Un
known Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Un
known Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.retrieveCollection(Unkn
own Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.retrieveCollections(Unk
nown Source)
at
org.apache.ojb.broker.accesslayer.RsIterator.getObjectFromResultSet(Unknown
Source)
at org.apache.ojb.broker.accesslayer.RsIterator.next(Unknown Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Un
known Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Un
known Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Un
known Source)
at org.apache.ojb.odmg.oql.OQLQueryImpl.execute(Unknown Source)
at Aplicacion.main(Aplicacion.java:60)
[org.apache.ojb.broker.accesslayer.RsIterator] ERROR: Unable to build object
instance :class Permiso org.apache.ojb.broker.PersistenceBrokerException:
Unable to build object instance :class Permiso
at
org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.buildWithReflection(U
nknown Source)
at
org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.readObjectFrom(Unknow
n Source)
at
org.apache.ojb.broker.accesslayer.RsIterator.getObjectFromResultSet(Unknown
Source)
at org.apache.ojb.broker.accesslayer.RsIterator.next(Unknown Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Un
known Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Un
known Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Un
known Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.retrieveCollection(Unkn
own Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.retrieveCollections(Unk
nown Source)
at
org.apache.ojb.broker.accesslayer.RsIterator.getObjectFromResultSet(Unknown
Source)
at org.apache.ojb.broker.accesslayer.RsIterator.next(Unknown Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Un
known Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Un
known Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Un
known Source)
at org.apache.ojb.odmg.oql.OQLQueryImpl.execute(Unknown Source)
at Aplicacion.main(Aplicacion.java:60)
java.util.NoSuchElementException
at org.apache.ojb.broker.accesslayer.RsIterator.next(Unknown Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Un
known Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Un
known Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Un
known Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.retrieveCollection(Unkn
own Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.retrieveCollections(Unk
nown Source)
at
org.apache.ojb.broker.accesslayer.RsIterator.getObjectFromResultSet(Unknown
Source)
at org.apache.ojb.broker.accesslayer.RsIterator.next(Unknown Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Un
known Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Un
known Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Un
known Source)
at org.apache.ojb.odmg.oql.OQLQueryImpl.execute(Unknown Source)
at Aplicacion.main(Aplicacion.java:60)
[org.apache.ojb.broker.accesslayer.RsIterator] ERROR: null
java.util.NoSuchElementException
at org.apache.ojb.broker.accesslayer.RsIterator.next(Unknown Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Un
known Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Un
known Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Un
known Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.retrieveCollection(Unkn
own Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.retrieveCollections(Unk
nown Source)
at
org.apache.ojb.broker.accesslayer.RsIterator.getObjectFromResultSet(Unknown
Source)
at org.apache.ojb.broker.accesslayer.RsIterator.next(Unknown Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Un
known Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Un
known Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Un
known Source)
at org.apache.ojb.odmg.oql.OQLQueryImpl.execute(Unknown Source)
at Aplicacion.main(Aplicacion.java:60)
[ODMG] ERROR: null
java.util.NoSuchElementException
at org.apache.ojb.broker.accesslayer.RsIterator.next(Unknown Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Un
known Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Un
known Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Un
known Source)
at org.apache.ojb.odmg.oql.OQLQueryImpl.execute(Unknown Source)
at Aplicacion.main(Aplicacion.java:60)
org.odmg.QueryException
at org.apache.ojb.odmg.oql.OQLQueryImpl.execute(Unknown Source)
at Aplicacion.main(Aplicacion.java:60)
Process Exit...
That?s the schema,
<class-descriptor class="Accion" table="ACCIONES">
<field-descriptor id="1" name="idAccion" column="IDACCION"
jdbc-type="VARCHAR" length="32" primarykey="true" autoincrement="false"
nullable="false" indexed="false"/>
<field-descriptor id="2" name="textoMenu" column="STEXTOMENU"
jdbc-type="CHAR" length="255" primarykey="false" autoincrement="false"
nullable="false" indexed="false"/>
.
.
.
.
<collection-descriptor name="permisos" element-class-ref="Permiso"
orderby="idAccion" sort="ASC">
<inverse-foreignkey field-id-ref="1"/>
</collection-descriptor>
</class-descriptor>
<class-descriptor class="Repositorio" table="REPOSITORIOS">
<field-descriptor id="1" name="idRepositorio" column="IDREPOSITORIO"
jdbc-type="INTEGER" length="11" primarykey="true" autoincrement="false"
nullable="false" indexed="false"/>
<field-descriptor id="2" name="bloqueado" column="SBLOQUEADO"
jdbc-type="CHAR" length="1" primarykey="false" autoincrement="false"
nullable="false" indexed="false"/>
.
.
.
<collection-descriptor name="permisos" element-class-ref="Permiso">
<inverse-foreignkey field-id-ref="2"/>
</collection-descriptor>
</class-descriptor>
<class-descriptor class="Permiso " table="PERMISOS2">
<field-descriptor id="2" name="idAccion" column="IDACCION"
jdbc-type="VARCHAR" length="32" primarykey="true" autoincrement="false"
nullable="false" indexed="false"/>
<field-descriptor id="3" name="idRepositorio" column="IDREPOSITORIO"
jdbc-type="INTEGER" length="11" primarykey="true" autoincrement="false"
nullable="false" indexed="false"/>
<reference-descriptor name="accion" class-ref="Accion">
<foreignkey field-id-ref="1"/>
</reference-descriptor>
<reference-descriptor name="repositorio" class-ref="Repositorio">
<foreignkey field-id-ref="2"/>
</reference-descriptor>
<collection-descriptor name="grupos" element-class-ref="Grupo"
orderby="idGrupo" sort="ASC" auto-retrieve="false" auto-update="false"
indirection-table="PERMISOS_GRUPOS">
<fk-pointing-to-this-class column="idPermiso"/>
<fk-pointing-to-element-class column="idGrupo"/>
</collection-descriptor>
</class-descriptor>
That?s the classes (methods not shows):
public class Accion
{
protected String idAccion;
protected String textoMenu;
.
.
.
protected Vector permisos;
protected Vector repositorios;
}
public class Repositorio
{
protected int idRepositorio;
protected String bloqueado;
.
.
.
protected Vector permisos;
protected Vector acciones;
}
public class Permiso
{
protected String idAccion;
protected int idRepositorio;
protected Accion accion;
protected Repositorio repositorio;
}
I apoligize for so many text but I need to resolve the problem ASAP. Any
idea?. Any help?
Thanks in advanced.
jose Galiana
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>