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