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]>

Reply via email to