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 Mykola Ostapchuk <my...@sympatico.ca> on 2003/07/14 20:55:38 UTC

M:N problem

Hi,
I'm having a problem with m:n relationship.

DB tables:
users  <- usersroles -> roles

usersroles table contains foreign keys to users table (UR_US_id_FK) and to
roles table (UR_RL_id_FK).

repository_user.xml:

<class-descriptor class="com.iprs.core.users.UsersRolesVO"
table="usersroles">
 <field-descriptor id="2" name="urUSIdFK" column="UR_US_id_FK"
jdbc-type="BIGINT" primarykey="true"/>
 <field-descriptor id="3" name="urRLIdFK" column="UR_RL_id_FK"
jdbc-type="BIGINT" primarykey="true"/>

<reference-descriptor name="urRoles" class-ref="com.iprs.core.roles.RolesVO"
refresh="true">
  <foreignkey field-ref="urRLIdFK"/>
</reference-descriptor>

-------If I comment this reference, everything works fine--------
<reference-descriptor name="urUsers" class-ref="com.iprs.core.users.UsersVO"
refresh="true">
  <foreignkey field-ref="urUSIdFK"/>
</reference-descriptor>

</class-descriptor>


<class-descriptor class="com.iprs.core.users.UsersVO" table="users"
refresh="true">
<field-descriptor id="1"  name="userId" column="US_id" jdbc-type="BIGINT"
primarykey="true" autoincrement="true"/>

 <collection-descriptor name ="userUR"
element-class-ref="com.iprs.core.users.UsersRolesVO" auto-retrieve="true"
auto-update="true" auto-delete="true" refresh="true">
            <inverse-foreignkey field-ref="urUSIdFK"/>
 </collection-descriptor>
 </class-descriptor>

<class-descriptor class="com.iprs.core.roles.RolesVO" table="roles">
     <field-descriptor id="1" name="roleId" column="RL_id"
jdbc-type="BIGINT"  primarykey="true" autoincrement="true"/>
 <collection-descriptor name ="roleUR"
element-class-ref="com.iprs.core.users.UsersRolesVO" auto-retrieve="true"
auto-update="true" auto-delete="true">
            <inverse-foreignkey field-ref="urRLIdFK"/>
 </collection-descriptor>
</class-descriptor>


UsersRolesVO class:

public class UsersRolesVO extends ValueObject {
    private Long urUSIdFK;
    private Long urRLIdFK;
    private RolesVO urRoles;
    private UsersVO urUsers;

get()/set() ommitted.
}




20531 DEBUG [Thread-5] sql.SqlGeneratorDefaultImpl - SQL:SELECT
A0.UR_US_id_FK,A0.UR_RL_id_FK FROM usersroles A0 WHERE A0.UR_US_id_FK =  ?
20531 DEBUG [Thread-5] sql.SqlGeneratorDefaultImpl - SQL:SELECT
US_f_name,US_password,US_active,US_id,US_CO_id_FK,US_date_inserted,US_zip,US
_ST_id_FK,US_l_name,US_username,US_email,US_city,US_address FROM users WHERE
US_id = ?
20547 DEBUG [Thread-5] sql.SqlGeneratorDefaultImpl - SQL:SELECT
A0.UR_US_id_FK,A0.UR_RL_id_FK FROM usersroles A0 WHERE A0.UR_US_id_FK =  ?
20547 DEBUG [Thread-5] sql.SqlGeneratorDefaultImpl - SQL:SELECT
A0.UR_US_id_FK,A0.UR_RL_id_FK FROM usersroles A0 WHERE A0.UR_US_id_FK =  ?
20563 DEBUG [Thread-5] sql.SqlGeneratorDefaultImpl - SQL:SELECT
A0.UR_US_id_FK,A0.UR_RL_id_FK FROM usersroles A0 WHERE A0.UR_US_id_FK =  ?
20578 DEBUG [Thread-5] sql.SqlGeneratorDefaultImpl - SQL:SELECT
A0.UR_US_id_FK,A0.UR_RL_id_FK FROM usersroles A0 WHERE A0.UR_US_id_FK =  ?
............................................................................
........................................................
20578 DEBUG [Thread-5] sql.SqlGeneratorDefaultImpl - SQL:SELECT
A0.UR_US_id_FK,A0.UR_RL_id_FK FROM usersroles A0 WHERE A0.UR_US_id_FK =  ?



I receive an infinite loop (see SQL:SELECT A0.UR_US_id_FK,A0.UR_RL_id_FK
FROM usersroles A0 WHERE A0.UR_US_id_FK =  ? ) and Tomcat shuts down.

Does anybody knows where the problem is? I believe I'm setting m:n
relationship according to example in OJB doc.

Thanks a lot!
Mykola Ostapchuk


---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org