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