Hi,

Have you a default constructor for each class with no params and
instantiate each atributte member (Role, Group, Users, .. ) before OJB can
use them?

I�d a similar problema and now, it works fine.

Greetings

Jose Galiana

> I've got a setup almost exactly like the M:N examples in the test
> suite, and for the life of me, can't figure out why this won't work for
>   me, so I'm hoping someone here can help. I know it's a lot to ask, so
>   thanks in advance for taking a look. Here's how the classes look:
>
> User -> Role <- Group
>
> instead of the test code's Person -> Role <- Project
>
> My test case and repository entry are below. If I comment out the
> following (and the corresponding block in the Group class):
>
>       <collection-descriptor name="roles"
>
> element-class-ref="com.stmpjmpr.system.Role">
>             <inverse-foreignkey field-id-ref="1"/>
>         </collection-descriptor>
>
> the rest works fine. If I leave this in, I get this:
>
> .[BOOT] INFO: OJB.properties:
> file:/Users/stmpjmpr/Java/Projects/stmpjmpr/OJB.properties
> [org.apache.ojb.broker.ta.PersistenceBrokerFactoryDefaultImpl] INFO:
> Already created persistence broker instances: 0
> [DEFAULT] INFO: OJB Descriptor Repository:
> file:/Users/stmpjmpr/Java/Projects/stmpjmpr/classes/repository.xml
> [DEFAULT] INFO: ...Finished parsing
> [org.apache.ojb.broker.util.sequence.SequenceManagerFactory] INFO: Use
>  sequence manager class: class
> org.apache.ojb.broker.util.sequence.SequenceManagerHiLoImpl
> [org.apache.ojb.broker.accesslayer.AbstractPoolableConnectionFactory]
> INFO: # Create connection pool for JdbcDescriptorKey 488943901 #
> [org.apache.ojb.broker.accesslayer.AbstractConnectionFactory] INFO: #
> Already created connections: 1 returning :
> org.postgresql.jdbc2.Connection@39b841
> [org.apache.ojb.broker.accesslayer.RsIterator] DEBUG: RsIterator(Query
>  from class com.stmpjmpr.system.User where login =  ? , table:
>       users
> FieldDescriptions:
> [Lorg.apache.ojb.broker.metadata.FieldDescriptor;@3fb859)
> [org.apache.ojb.broker.accesslayer.JdbcAccess] DEBUG: executeQuery :
> Query from class com.stmpjmpr.system.User where login =  ?
> [org.apache.ojb.broker.accesslayer.SqlGenerator] DEBUG: SQL: SELECT
> A0.url,A0.activity_visible,A0.id,A0.birthdate,A0.status,A0.first_name,A0
>
> .last_login,A0.update_required,A0.email,A0.date_created,A0.login,A0.emai
>  l_visible,A0.password,A0.last_name FROM users A0 WHERE A0.login =  ?
> [org.apache.ojb.broker.accesslayer.RsIterator] DEBUG: hasNext() -> true
> [DEFAULT] INFO: OJB Descriptor Repository:
> file:/Users/stmpjmpr/Java/Projects/stmpjmpr/classes/repository.xml
> [DEFAULT] INFO: ...Finished parsing
> [org.apache.ojb.broker.accesslayer.RsIterator] DEBUG: RsIterator(Query
>  from class com.stmpjmpr.system.Role where userId =  ? , table:
>       roles
> FieldDescriptions:
> [Lorg.apache.ojb.broker.metadata.FieldDescriptor;@7119f5)
> [org.apache.ojb.broker.accesslayer.JdbcAccess] DEBUG: executeQuery :
> Query from class com.stmpjmpr.system.Role where userId =  ?
> [org.apache.ojb.broker.accesslayer.SqlGenerator] DEBUG: SQL: SELECT
> A0.view,A0.user_id,A0.name,A0.post,A0.edit,A0.group_id,A0.delete FROM
> roles A0 WHERE A0.user_id =  ?
> [org.apache.ojb.broker.accesslayer.RsIterator] DEBUG: hasNext() -> true
> [org.apache.ojb.broker.ta.PersistenceBrokerFactoryDefaultImpl] INFO:
> Already created persistence broker instances: 1
> [org.apache.ojb.broker.accesslayer.SqlGenerator] DEBUG: SQL: SELECT
> name,description,id FROM groups WHERE (groups.id = ? )
> [org.apache.ojb.broker.accesslayer.RsIterator] DEBUG: RsIterator(Query
>  from roles where (roles.group_id =  ? )  AND roles.user_id = id,
> table:
>       users
> FieldDescriptions:
> [Lorg.apache.ojb.broker.metadata.FieldDescriptor;@3fb859)
> [org.apache.ojb.broker.accesslayer.JdbcAccess] DEBUG: executeQuery :
> Query from roles where (roles.group_id =  ? )  AND roles.user_id = id
> java.lang.ClassCastException:
> org.apache.ojb.broker.query.QueryByMtoNCriteria
>       at
> org.apache.ojb.broker.accesslayer.SqlStatement.getItemClassDescriptor(Sq
>  lStatement.java:378)
>       at
> org.apache.ojb.broker.accesslayer.SqlStatement.getTableAlias(SqlStatemen
>  t.java:322)
>       at
> org.apache.ojb.broker.accesslayer.SqlStatement.buildJoinTreeForColumn(Sq
>  lStatement.java:785)
>       at
> org.apache.ojb.broker.accesslayer.SqlStatement.buildJoinTree(SqlStatemen
>  t.java:756)
>       at
> org.apache.ojb.broker.accesslayer.SqlStatement.splitCriteria(SqlStatemen
>  t.java:704)
>       at
> org.apache.ojb.broker.accesslayer.SqlStatement.<init>(SqlStatement.java:
>  134)
>       at
> org.apache.ojb.broker.accesslayer.SqlSelectStatement.<init>(SqlSelectSta
>  tement.java:84)
>       at
> org.apache.ojb.broker.accesslayer.SqlGenerator.getPreparedSelectStatemen
>  t(SqlGenerator.java:186)
>       at
> org.apache.ojb.broker.accesslayer.JdbcAccess.executeQuery(JdbcAccess.jav
>  a:226)
>       at
> org.apache.ojb.broker.accesslayer.RsIterator.<init>(RsIterator.java:249)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getIteratorFromQuer
>  y(PersistenceBrokerImpl.java:1526)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuer
>  y(PersistenceBrokerImpl.java:1115)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuer
>  y(PersistenceBrokerImpl.java:1285)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuer
>  y(PersistenceBrokerImpl.java:1407)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.retrieveCollection(
>  PersistenceBrokerImpl.java:922)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.retrieveCollections
>  (PersistenceBrokerImpl.java:974)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getDBObject(Persist
>  enceBrokerImpl.java:1481)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getObjectByIdentity
>  (PersistenceBrokerImpl.java:1562)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getReferencedObject
>  (PersistenceBrokerImpl.java:1080)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.retrieveReference(P
>  ersistenceBrokerImpl.java:873)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.retrieveReferences(
>  PersistenceBrokerImpl.java:851)
>       at
> org.apache.ojb.broker.accesslayer.RsIterator.getObjectFromResultSet(RsIt
>  erator.java:421)
>       at
> org.apache.ojb.broker.accesslayer.RsIterator.next(RsIterator.java:205)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuer
>  y(PersistenceBrokerImpl.java:1142)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuer
>  y(PersistenceBrokerImpl.java:1285)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuer
>  y(PersistenceBrokerImpl.java:1407)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.retrieveCollection(
>  PersistenceBrokerImpl.java:922)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.retrieveCollections
>  (PersistenceBrokerImpl.java:974)
>       at
> org.apache.ojb.broker.accesslayer.RsIterator.getObjectFromResultSet(RsIt
>  erator.java:422)
>       at
> org.apache.ojb.broker.accesslayer.RsIterator.next(RsIterator.java:205)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuer
>  y(PersistenceBrokerImpl.java:1142)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuer
>  y(PersistenceBrokerImpl.java:1285)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuer
>  y(PersistenceBrokerImpl.java:1407)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuer
>  y(PersistenceBrokerImpl.java:1393)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getObjectByQuery(Pe
>  rsistenceBrokerImpl.java:1602)
>       at com.stmpjmpr.system.UserTest.testAdminUser(UserTest.java:97)
>       at java.lang.reflect.Method.invoke(Native Method)
>       at junit.framework.TestCase.runTest(TestCase.java:166)
>       at junit.framework.TestCase.runBare(TestCase.java:140)
>       at junit.framework.TestResult$1.protect(TestResult.java:106)
>       at junit.framework.TestResult.runProtected(TestResult.java:124)
>       at junit.framework.TestResult.run(TestResult.java:109)
>       at junit.framework.TestCase.run(TestCase.java:131)
>       at junit.framework.TestSuite.runTest(TestSuite.java:173)
>       at junit.framework.TestSuite.run(TestSuite.java:168)
>       at junit.textui.TestRunner.doRun(TestRunner.java:74)
>       at junit.textui.TestRunner.start(TestRunner.java:234)
>       at junit.textui.TestRunner.main(TestRunner.java:112)
> [org.apache.ojb.broker.accesslayer.RsIterator] ERROR:
> org.apache.ojb.broker.query.QueryByMtoNCriteria
> java.lang.ClassCastException:
> org.apache.ojb.broker.query.QueryByMtoNCriteria
>       at
> org.apache.ojb.broker.accesslayer.SqlStatement.getItemClassDescriptor(Sq
>  lStatement.java:378)
>       at
> org.apache.ojb.broker.accesslayer.SqlStatement.getTableAlias(SqlStatemen
>  t.java:322)
>       at
> org.apache.ojb.broker.accesslayer.SqlStatement.buildJoinTreeForColumn(Sq
>  lStatement.java:785)
>       at
> org.apache.ojb.broker.accesslayer.SqlStatement.buildJoinTree(SqlStatemen
>  t.java:756)
>       at
> org.apache.ojb.broker.accesslayer.SqlStatement.splitCriteria(SqlStatemen
>  t.java:704)
>       at
> org.apache.ojb.broker.accesslayer.SqlStatement.<init>(SqlStatement.java:
>  134)
>       at
> org.apache.ojb.broker.accesslayer.SqlSelectStatement.<init>(SqlSelectSta
>  tement.java:84)
>       at
> org.apache.ojb.broker.accesslayer.SqlGenerator.getPreparedSelectStatemen
>  t(SqlGenerator.java:186)
>       at
> org.apache.ojb.broker.accesslayer.JdbcAccess.executeQuery(JdbcAccess.jav
>  a:226)
>       at
> org.apache.ojb.broker.accesslayer.RsIterator.<init>(RsIterator.java:249)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getIteratorFromQuer
>  y(PersistenceBrokerImpl.java:1526)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuer
>  y(PersistenceBrokerImpl.java:1115)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuer
>  y(PersistenceBrokerImpl.java:1285)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuer
>  y(PersistenceBrokerImpl.java:1407)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.retrieveCollection(
>  PersistenceBrokerImpl.java:922)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.retrieveCollections
>  (PersistenceBrokerImpl.java:974)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getDBObject(Persist
>  enceBrokerImpl.java:1481)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getObjectByIdentity
>  (PersistenceBrokerImpl.java:1562)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getReferencedObject
>  (PersistenceBrokerImpl.java:1080)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.retrieveReference(P
>  ersistenceBrokerImpl.java:873)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.retrieveReferences(
>  PersistenceBrokerImpl.java:851)
>       at
> org.apache.ojb.broker.accesslayer.RsIterator.getObjectFromResultSet(RsIt
>  erator.java:421)
>       at
> org.apache.ojb.broker.accesslayer.RsIterator.next(RsIterator.java:205)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuer
>  y(PersistenceBrokerImpl.java:1142)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuer
>  y(PersistenceBrokerImpl.java:1285)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuer
>  y(PersistenceBrokerImpl.java:1407)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.retrieveCollection(
>  PersistenceBrokerImpl.java:922)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.retrieveCollections
>  (PersistenceBrokerImpl.java:974)
>       at
> org.apache.ojb.broker.accesslayer.RsIterator.getObjectFromResultSet(RsIt
>  erator.java:422)
>       at
> org.apache.ojb.broker.accesslayer.RsIterator.next(RsIterator.java:205)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuer
>  y(PersistenceBrokerImpl.java:1142)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuer
>  y(PersistenceBrokerImpl.java:1285)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuer
>  y(PersistenceBrokerImpl.java:1407)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuer
>  y(PersistenceBrokerImpl.java:1393)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getObjectByQuery(Pe
>  rsistenceBrokerImpl.java:1602)
>       at com.stmpjmpr.system.UserTest.testAdminUser(UserTest.java:97)
>       at java.lang.reflect.Method.invoke(Native Method)
>       at junit.framework.TestCase.runTest(TestCase.java:166)
>       at junit.framework.TestCase.runBare(TestCase.java:140)
>       at junit.framework.TestResult$1.protect(TestResult.java:106)
>       at junit.framework.TestResult.runProtected(TestResult.java:124)
>       at junit.framework.TestResult.run(TestResult.java:109)
>       at junit.framework.TestCase.run(TestCase.java:131)
>       at junit.framework.TestSuite.runTest(TestSuite.java:173)
>       at junit.framework.TestSuite.run(TestSuite.java:168)
>       at junit.textui.TestRunner.doRun(TestRunner.java:74)
>       at junit.textui.TestRunner.start(TestRunner.java:234)
>       at junit.textui.TestRunner.main(TestRunner.java:112)
> java.util.NoSuchElementException
>       at
> org.apache.ojb.broker.accesslayer.RsIterator.next(RsIterator.java:221)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuer
>  y(PersistenceBrokerImpl.java:1142)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuer
>  y(PersistenceBrokerImpl.java:1285)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuer
>  y(PersistenceBrokerImpl.java:1407)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.retrieveCollection(
>  PersistenceBrokerImpl.java:922)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.retrieveCollections
>  (PersistenceBrokerImpl.java:974)
>       at
> org.apache.ojb.broker.accesslayer.RsIterator.getObjectFromResultSet(RsIt
>  erator.java:422)
>       at
> org.apache.ojb.broker.accesslayer.RsIterator.next(RsIterator.java:205)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuer
>  y(PersistenceBrokerImpl.java:1142)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuer
>  y(PersistenceBrokerImpl.java:1285)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuer
>  y(PersistenceBrokerImpl.java:1407)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuer
>  y(PersistenceBrokerImpl.java:1393)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getObjectByQuery(Pe
>  rsistenceBrokerImpl.java:1602)
>       at com.stmpjmpr.system.UserTest.testAdminUser(UserTest.java:97)
>       at java.lang.reflect.Method.invoke(Native Method)
>       at junit.framework.TestCase.runTest(TestCase.java:166)
>       at junit.framework.TestCase.runBare(TestCase.java:140)
>       at junit.framework.TestResult$1.protect(TestResult.java:106)
>       at junit.framework.TestResult.runProtected(TestResult.java:124)
>       at junit.framework.TestResult.run(TestResult.java:109)
>       at junit.framework.TestCase.run(TestCase.java:131)
>       at junit.framework.TestSuite.runTest(TestSuite.java:173)
>       at junit.framework.TestSuite.run(TestSuite.java:168)
>       at junit.textui.TestRunner.doRun(TestRunner.java:74)
>       at junit.textui.TestRunner.start(TestRunner.java:234)
>       at junit.textui.TestRunner.main(TestRunner.java:112)
> [org.apache.ojb.broker.accesslayer.RsIterator] ERROR: null
> java.util.NoSuchElementException
>       at
> org.apache.ojb.broker.accesslayer.RsIterator.next(RsIterator.java:221)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuer
>  y(PersistenceBrokerImpl.java:1142)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuer
>  y(PersistenceBrokerImpl.java:1285)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuer
>  y(PersistenceBrokerImpl.java:1407)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.retrieveCollection(
>  PersistenceBrokerImpl.java:922)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.retrieveCollections
>  (PersistenceBrokerImpl.java:974)
>       at
> org.apache.ojb.broker.accesslayer.RsIterator.getObjectFromResultSet(RsIt
>  erator.java:422)
>       at
> org.apache.ojb.broker.accesslayer.RsIterator.next(RsIterator.java:205)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuer
>  y(PersistenceBrokerImpl.java:1142)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuer
>  y(PersistenceBrokerImpl.java:1285)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuer
>  y(PersistenceBrokerImpl.java:1407)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuer
>  y(PersistenceBrokerImpl.java:1393)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getObjectByQuery(Pe
>  rsistenceBrokerImpl.java:1602)
>       at com.stmpjmpr.system.UserTest.testAdminUser(UserTest.java:97)
>       at java.lang.reflect.Method.invoke(Native Method)
>       at junit.framework.TestCase.runTest(TestCase.java:166)
>       at junit.framework.TestCase.runBare(TestCase.java:140)
>       at junit.framework.TestResult$1.protect(TestResult.java:106)
>       at junit.framework.TestResult.runProtected(TestResult.java:124)
>       at junit.framework.TestResult.run(TestResult.java:109)
>       at junit.framework.TestCase.run(TestCase.java:131)
>       at junit.framework.TestSuite.runTest(TestSuite.java:173)
>       at junit.framework.TestSuite.run(TestSuite.java:168)
>       at junit.textui.TestRunner.doRun(TestRunner.java:74)
>       at junit.textui.TestRunner.start(TestRunner.java:234)
>       at junit.textui.TestRunner.main(TestRunner.java:112)
> E
> Time: 6.048
> There was 1 error:
> 1) testAdminUser(com.stmpjmpr.system.UserTest)
> java.util.NoSuchElementException
>       at
> org.apache.ojb.broker.accesslayer.RsIterator.next(RsIterator.java:221)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuer
>  y(PersistenceBrokerImpl.java:1142)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuer
>  y(PersistenceBrokerImpl.java:1285)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuer
>  y(PersistenceBrokerImpl.java:1407)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuer
>  y(PersistenceBrokerImpl.java:1393)
>       at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getObjectByQuery(Pe
>  rsistenceBrokerImpl.java:1602)
>       at com.stmpjmpr.system.UserTest.testAdminUser(UserTest.java:97)
>
> FAILURES!!!
> Tests run: 1,  Failures: 0,  Errors: 1
>
> Process terminated with exit code -1
>
> ************
> Here's my repository entry:
>
>     <class-descriptor class="com.stmpjmpr.system.User" table="users">
>         <field-descriptor id="1"
>                           name="id"
>                           jdbc-type="INTEGER"
>                           column="id"
>                           primarykey="true"
>                           autoincrement="true"
>          />
>         <field-descriptor name="login" id="2" jdbc-type="VARCHAR"
> column="login"/>
>         <field-descriptor name="firstName" id="3" jdbc-type="VARCHAR"
> column="first_name"/>
>         <field-descriptor name="lastName" id="4" jdbc-type="VARCHAR"
> column="last_name"/>
>         <field-descriptor name="password" id="5" jdbc-type="VARCHAR"
> column="password"/>
>         <field-descriptor name="dateCreated" id="6"
> jdbc-type="TIMESTAMP" column="date_created"/>
>         <field-descriptor name="lastLogin" id="7" jdbc-type="TIMESTAMP"
>
> column="last_login"/>
>         <field-descriptor name="status" id="8" jdbc-type="INTEGER"
> column="status"/>
>         <field-descriptor name="birthdate" id="9" jdbc-type="DATE"
> column="birthdate"/>
>         <field-descriptor name="email" id="10" jdbc-type="VARCHAR"
> column="email"/>
>         <field-descriptor name="url" id="11" jdbc-type="VARCHAR"
> column="url"/>
>         <field-descriptor name="emailVisible" id="12" jdbc-type="BIT"
> column="email_visible"/>
>         <field-descriptor name="activityVisible" id="13"
> jdbc-type="BIT" column="activity_visible"/>
>         <field-descriptor name="updateRequired" id="14" jdbc-type="BIT"
>
> column="update_required"/>
>         <collection-descriptor name="roles"
>
> element-class-ref="com.stmpjmpr.system.Role">
>             <inverse-foreignkey field-id-ref="1"/>
>         </collection-descriptor>
>         <collection-descriptor
>             name="groups"
>             element-class-ref="com.stmpjmpr.system.Group"
>             auto-retrieve="true"
>             auto-update="true"
>             indirection-table="roles"
>         >
>             <fk-pointing-to-this-class column="user_id"/>
>             <fk-pointing-to-element-class column="group_id"/>
>         </collection-descriptor>
>     </class-descriptor>
>
>     <class-descriptor class="com.stmpjmpr.system.Group" table="groups"
>     >
>         <field-descriptor name="id" id="1" jdbc-type="INTEGER"
> column="id" primarykey="true" autoincrement="true"/>
>         <field-descriptor name="name" id="2" jdbc-type="VARCHAR"
> column="name"/>
>         <field-descriptor name="description" id="3" jdbc-type="VARCHAR"
>
> column="description"/>
>         <!--<collection-descriptor name="roles"
> element-class-ref="com.stmpjmpr.system.Role">
>             <inverse-foreignkey field-id-ref="2"/>
>         </collection-descriptor>-->
>         <collection-descriptor
>             name="users"
>             element-class-ref="com.stmpjmpr.system.User"
>             auto-retrieve="true"
>             auto-update="true"
>             indirection-table="roles"
>         >
>             <fk-pointing-to-this-class column="group_id"/>
>             <fk-pointing-to-element-class column="user_id"/>
>         </collection-descriptor>
>     </class-descriptor>
>
>     <class-descriptor class="com.stmpjmpr.system.Role" table="roles">
>         <field-descriptor name="userId" id="1" jdbc-type="INTEGER"
> column="user_id" primarykey="true"/>
>         <field-descriptor name="groupId" id="2" jdbc-type="INTEGER"
> column="group_id" primarykey="true"/>
>         <field-descriptor name="name" id="3" jdbc-type="VARCHAR"
> column="name"/>
>         <field-descriptor name="allowedToView" id="4" jdbc-type="BIT"
> column="view"/>
>         <field-descriptor name="allowedToPost" id="5" jdbc-type="BIT"
> column="post"/>
>         <field-descriptor name="allowedToEditOthers" id="6"
> jdbc-type="BIT" column="edit"/>
>         <field-descriptor name="allowedToDeleteOthers" id="7"
> jdbc-type="BIT" column="delete"/>
>         <reference-descriptor name="user"
> class-ref="com.stmpjmpr.system.User">
>             <foreignkey field-id-ref="1"/>
>         </reference-descriptor>
>         <reference-descriptor name="group"
> class-ref="com.stmpjmpr.system.Group">
>             <foreignkey field-id-ref="2"/>
>         </reference-descriptor>
>     </class-descriptor>
>
> *************
> and my test case:
>
>     public void testAdminUser() {
>         criteria = new Criteria();
>         criteria.addEqualTo("login", "Stmpjmpr");
>         query = new QueryByCriteria(User.class, criteria);
>         broker.beginTransaction();
>         User me = (User) broker.getObjectByQuery(query);
>         System.out.println("Got user: " + me.toString() + ".");
>         // Collection roles = me.getRoles();
>         Collection groups = me.getGroups();
>         assertNotNull(groups);
>         System.out.println("Groups:");
>         Iterator i = groups.iterator();
>         while (i.hasNext()) {
>             System.out.println(i.next());
>         }
>         // assertNotNull(roles);
>         broker.commitTransaction();
>         broker.clearCache();
>         broker.close();
>     }
>
> --Scott
>
>
> --
> To unsubscribe, e-mail:
> <mailto:[EMAIL PROTECTED]> For additional
> commands, e-mail: <mailto:[EMAIL PROTECTED]>




--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to