Hi!
I'm largelly using 1:N and M:N relationships in my project. I'll try to give
you a little tips:
1) Use your N parts as Collection. If you are using
PersistentFieldPropertyImpl, then you should have
public class A {
private Collection myNpart;
private Integer id;
public void setId( Integer newId ) { id = newId; }
public Integer getId( ) {return id;}
public void setCol( Collection newCol ) { myNpart = newCol; }
public Collection getCol( ) { return myNpart; }
}
public class B {
private Integer id;
private Integer idA;
private A a;
public void setId( Integer newId ) { id = newId; }
public Integer getId( ) {return id;}
public void setIdA( Integer newIdA ) { idA = newIdA; }
public Integer getIdA( ) {return idA;}
public void setA( A newA ) { a = newA; }
public A getA( ) { return a; }
}
2) Your .xml should be similar to:
<class-descriptor
class="A"
table="TB_A">
<field-descriptor
name="id"
column="ID"
jdbc-type="INTEGER"
primarykey="true" />
<collection-descriptor
name="col"
element-class-ref="B">
<inverse-foreignkey
field-ref="idA"/>
</collection-descriptor>
</class-descriptor>
<class-descriptor
class="B"
table="TB_B">
<field-descriptor
name="id"
column="ID"
jdbc-type="INTEGER"
primarykey="true" />
<field-descriptor
name="idA"
column="ID_A"
jdbc-type="INTEGER"
primarykey="true" />
<reference-descriptor
name="a"
class-ref="A">
<foreignkey field-ref="idA"/>
</reference-descriptor>
</class-descriptor>
And this should work. You don't need to specify auto-retrieve, because by
default it's true. Auto-update and auto-delete are false by default. Some
people like to work with specialized collection classes. In particular, I
work always with RemovalAwareList (a collection that know how to persists
deletes in the collection). To archieve this, your should be more specific
in collection descriptor like this:
<collection-descriptor
name="col"
collection-class="org.apache.ojb.broker.util.collections.RemovalAwareList"
element-class-ref="B">
<inverse-foreignkey
field-ref="idA"/>
</collection-descriptor>
Of course, you could mixes the several other options that OJB offers to you,
like auto-increment, proxies and so on. In this case, I'll recomendly you to
use cvs HEAD that has several fixes for these options over rc3.
Best regards,
Edson Richter
----- Original Message -----
From: "Christian Eugster" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Monday, July 07, 2003 11:31 AM
Subject: 1:m-relation
i am working on a mysql-database and ojb rc3. i have an 1:m-relation with
the following setting in the collection-desriptor of the parent object:
auto-retrieve="true"
when i try to retrieve an parent-object i get the error-message as follows:
(setting auto-retrieve to false there is no error). what am i doing wrong?
java.lang.IllegalArgumentException
at
sun.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.
java:63)
at java.lang.reflect.Field.set(Field.java:519)
at
org.apache.ojb.broker.metadata.fieldaccess.PersistentFieldDefaultImpl.set(Un
known Source)
at
org.apache.ojb.broker.core.PersistenceBrokerImpl.retrieveCollection(Unknown
Source)
at
org.apache.ojb.broker.core.PersistenceBrokerImpl.retrieveCollections(Unknown
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.core.PersistenceBrokerImpl.getCollectionByQuery(Unknow
n Source)
at
org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionByQuery(Unknow
n Source)
at
org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionByQuery(Unknow
n Source)
at
org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionByQuery(Unknow
n Source)
at
org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQuery(
Unknown Source)
at ch.eugster.pos.db.Receipt.getReceiptsByUserState(Receipt.java:183)
at
ch.eugster.pos.client.gui.ReceiptTableBlock.loadReceipts(ReceiptTableBlock.j
ava:58)
at
ch.eugster.pos.client.gui.ReceiptTableBlock.init(ReceiptTableBlock.java:50)
at
ch.eugster.pos.client.gui.ReceiptTableBlock.<init>(ReceiptTableBlock.java:39
)
at ch.eugster.pos.client.gui.ChildrenBlock.init(ChildrenBlock.java:34)
at ch.eugster.pos.client.gui.ChildrenBlock.<init>(ChildrenBlock.java:28)
at ch.eugster.pos.client.gui.UserPanel.init(UserPanel.java:58)
at ch.eugster.pos.client.gui.UserPanel.<init>(UserPanel.java:39)
at ch.eugster.pos.client.gui.TabPanel.addUser(TabPanel.java:67)
at ch.eugster.pos.client.gui.TabPanel.userLoggedIn(TabPanel.java:126)
at ch.eugster.pos.client.gui.LoginPanel.fireLoginEvent(LoginPanel.java:99)
at ch.eugster.pos.client.gui.LoginPanel.actionPerformed(LoginPanel.java:90)
at
ch.eugster.pos.client.gui.LoginBlock.fireActionEvent(LoginBlock.java:197)
at ch.eugster.pos.client.gui.LoginBlock.keyPressed(LoginBlock.java:156)
at java.awt.Component.processKeyEvent(Component.java:5051)
at javax.swing.JComponent.processKeyEvent(JComponent.java:2385)
at java.awt.Component.processEvent(Component.java:4902)
at java.awt.Container.processEvent(Container.java:1566)
at java.awt.Component.dispatchEventImpl(Component.java:3598)
at java.awt.Container.dispatchEventImpl(Container.java:1623)
at java.awt.Component.dispatchEvent(Component.java:3439)
at
java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1688
)
at
java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusMa
nager.java:593)
at
java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocu
sManager.java:765)
at
java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocu
sManager.java:698)
at
java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManag
er.java:559)
at java.awt.Component.dispatchEventImpl(Component.java:3468)
at java.awt.Container.dispatchEventImpl(Container.java:1623)
at java.awt.Window.dispatchEventImpl(Window.java:1585)
at java.awt.Component.dispatchEvent(Component.java:3439)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:450)
at
java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.ja
va:197)
at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java
:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:144)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:136)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:99)
rethrown as org.apache.ojb.broker.metadata.MetadataException: Error setting
field:positions in object:ch.eugster.pos.db.Receipt
at
org.apache.ojb.broker.metadata.fieldaccess.PersistentFieldDefaultImpl.set(Un
known Source)
at
org.apache.ojb.broker.core.PersistenceBrokerImpl.retrieveCollection(Unknown
Source)
at
org.apache.ojb.broker.core.PersistenceBrokerImpl.retrieveCollections(Unknown
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.core.PersistenceBrokerImpl.getCollectionByQuery(Unknow
n Source)
at
org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionByQuery(Unknow
n Source)
at
org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionByQuery(Unknow
n Source)
at
org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionByQuery(Unknow
n Source)
at
org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQuery(
Unknown Source)
at ch.eugster.pos.db.Receipt.getReceiptsByUserState(Receipt.java:183)
at
ch.eugster.pos.client.gui.ReceiptTableBlock.loadReceipts(ReceiptTableBlock.j
ava:58)
at
ch.eugster.pos.client.gui.ReceiptTableBlock.init(ReceiptTableBlock.java:50)
at
ch.eugster.pos.client.gui.ReceiptTableBlock.<init>(ReceiptTableBlock.java:39
)
at ch.eugster.pos.client.gui.ChildrenBlock.init(ChildrenBlock.java:34)
at ch.eugster.pos.client.gui.ChildrenBlock.<init>(ChildrenBlock.java:28)
at ch.eugster.pos.client.gui.UserPanel.init(UserPanel.java:58)
at ch.eugster.pos.client.gui.UserPanel.<init>(UserPanel.java:39)
at ch.eugster.pos.client.gui.TabPanel.addUser(TabPanel.java:67)
at ch.eugster.pos.client.gui.TabPanel.userLoggedIn(TabPanel.java:126)
at ch.eugster.pos.client.gui.LoginPanel.fireLoginEvent(LoginPanel.java:99)
at ch.eugster.pos.client.gui.LoginPanel.actionPerformed(LoginPanel.java:90)
at
ch.eugster.pos.client.gui.LoginBlock.fireActionEvent(LoginBlock.java:197)
at ch.eugster.pos.client.gui.LoginBlock.keyPressed(LoginBlock.java:156)
at java.awt.Component.processKeyEvent(Component.java:5051)
at javax.swing.JComponent.processKeyEvent(JComponent.java:2385)
at java.awt.Component.processEvent(Component.java:4902)
at java.awt.Container.processEvent(Container.java:1566)
at java.awt.Component.dispatchEventImpl(Component.java:3598)
at java.awt.Container.dispatchEventImpl(Container.java:1623)
at java.awt.Component.dispatchEvent(Component.java:3439)
at
java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1688
)
at
java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusMa
nager.java:593)
at
java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocu
sManager.java:765)
at
java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocu
sManager.java:698)
at
java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManag
er.java:559)
at java.awt.Component.dispatchEventImpl(Component.java:3468)
at java.awt.Container.dispatchEventImpl(Container.java:1623)
at java.awt.Window.dispatchEventImpl(Window.java:1585)
at java.awt.Component.dispatchEvent(Component.java:3439)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:450)
at
java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.ja
va:197)
at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java
:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:144)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:136)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:99)
Caused by: java.lang.IllegalArgumentException
at
sun.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.
java:63)
at java.lang.reflect.Field.set(Field.java:519)
... 46 more
java.lang.IllegalArgumentException
at
sun.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.
java:63)
at java.lang.reflect.Field.set(Field.java:519)
at
org.apache.ojb.broker.metadata.fieldaccess.PersistentFieldDefaultImpl.set(Un
known Source)
at
org.apache.ojb.broker.core.PersistenceBrokerImpl.retrieveCollection(Unknown
Source)
at
org.apache.ojb.broker.core.PersistenceBrokerImpl.retrieveCollections(Unknown
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.core.PersistenceBrokerImpl.getCollectionByQuery(Unknow
n Source)
at
org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionByQuery(Unknow
n Source)
at
org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionByQuery(Unknow
n Source)
at
org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionByQuery(Unknow
n Source)
at
org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQuery(
Unknown Source)
at ch.eugster.pos.db.Receipt.getReceiptsByUserState(Receipt.java:183)
at
ch.eugster.pos.client.gui.ReceiptTableBlock.loadReceipts(ReceiptTableBlock.j
ava:58)
at
ch.eugster.pos.client.gui.ReceiptTableBlock.init(ReceiptTableBlock.java:50)
at
ch.eugster.pos.client.gui.ReceiptTableBlock.<init>(ReceiptTableBlock.java:39
)
at ch.eugster.pos.client.gui.ChildrenBlock.init(ChildrenBlock.java:34)
at ch.eugster.pos.client.gui.ChildrenBlock.<init>(ChildrenBlock.java:28)
at ch.eugster.pos.client.gui.UserPanel.init(UserPanel.java:58)
at ch.eugster.pos.client.gui.UserPanel.<init>(UserPanel.java:39)
at ch.eugster.pos.client.gui.TabPanel.addUser(TabPanel.java:67)
at ch.eugster.pos.client.gui.TabPanel.userLoggedIn(TabPanel.java:126)
at ch.eugster.pos.client.gui.LoginPanel.fireLoginEvent(LoginPanel.java:99)
at ch.eugster.pos.client.gui.LoginPanel.actionPerformed(LoginPanel.java:90)
at
ch.eugster.pos.client.gui.LoginBlock.fireActionEvent(LoginBlock.java:197)
at ch.eugster.pos.client.gui.LoginBlock.keyPressed(LoginBlock.java:156)
at java.awt.Component.processKeyEvent(Component.java:5051)
at javax.swing.JComponent.processKeyEvent(JComponent.java:2385)
at java.awt.Component.processEvent(Component.java:4902)
at java.awt.Container.processEvent(Container.java:1566)
at java.awt.Component.dispatchEventImpl(Component.java:3598)
at java.awt.Container.dispatchEventImpl(Container.java:1623)
at java.awt.Component.dispatchEvent(Component.java:3439)
at
java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1688
)
at
java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusMa
nager.java:593)
at
java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocu
sManager.java:765)
at
java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocu
sManager.java:698)
at
java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManag
er.java:559)
at java.awt.Component.dispatchEventImpl(Component.java:3468)
at java.awt.Container.dispatchEventImpl(Container.java:1623)
at java.awt.Window.dispatchEventImpl(Window.java:1585)
at java.awt.Component.dispatchEvent(Component.java:3439)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:450)
at
java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.ja
va:197)
at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java
:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:144)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:136)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:99)
rethrown as org.apache.ojb.broker.metadata.MetadataException: Error setting
field:positions in object:ch.eugster.pos.db.Receipt
at
org.apache.ojb.broker.metadata.fieldaccess.PersistentFieldDefaultImpl.set(Un
known Source)
at
org.apache.ojb.broker.core.PersistenceBrokerImpl.retrieveCollection(Unknown
Source)
at
org.apache.ojb.broker.core.PersistenceBrokerImpl.retrieveCollections(Unknown
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.core.PersistenceBrokerImpl.getCollectionByQuery(Unknow
n Source)
at
org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionByQuery(Unknow
n Source)
at
org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionByQuery(Unknow
n Source)
at
org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionByQuery(Unknow
n Source)
at
org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQuery(
Unknown Source)
at ch.eugster.pos.db.Receipt.getReceiptsByUserState(Receipt.java:183)
at
ch.eugster.pos.client.gui.ReceiptTableBlock.loadReceipts(ReceiptTableBlock.j
ava:58)
at
ch.eugster.pos.client.gui.ReceiptTableBlock.init(ReceiptTableBlock.java:50)
at
ch.eugster.pos.client.gui.ReceiptTableBlock.<init>(ReceiptTableBlock.java:39
)
at ch.eugster.pos.client.gui.ChildrenBlock.init(ChildrenBlock.java:34)
at ch.eugster.pos.client.gui.ChildrenBlock.<init>(ChildrenBlock.java:28)
at ch.eugster.pos.client.gui.UserPanel.init(UserPanel.java:58)
at ch.eugster.pos.client.gui.UserPanel.<init>(UserPanel.java:39)
at ch.eugster.pos.client.gui.TabPanel.addUser(TabPanel.java:67)
at ch.eugster.pos.client.gui.TabPanel.userLoggedIn(TabPanel.java:126)
at ch.eugster.pos.client.gui.LoginPanel.fireLoginEvent(LoginPanel.java:99)
at ch.eugster.pos.client.gui.LoginPanel.actionPerformed(LoginPanel.java:90)
at
ch.eugster.pos.client.gui.LoginBlock.fireActionEvent(LoginBlock.java:197)
at ch.eugster.pos.client.gui.LoginBlock.keyPressed(LoginBlock.java:156)
at java.awt.Component.processKeyEvent(Component.java:5051)
at javax.swing.JComponent.processKeyEvent(JComponent.java:2385)
at java.awt.Component.processEvent(Component.java:4902)
at java.awt.Container.processEvent(Container.java:1566)
at java.awt.Component.dispatchEventImpl(Component.java:3598)
at java.awt.Container.dispatchEventImpl(Container.java:1623)
at java.awt.Component.dispatchEvent(Component.java:3439)
at
java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1688
)
at
java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusMa
nager.java:593)
at
java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocu
sManager.java:765)
at
java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocu
sManager.java:698)
at
java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManag
er.java:559)
at java.awt.Component.dispatchEventImpl(Component.java:3468)
at java.awt.Container.dispatchEventImpl(Container.java:1623)
at java.awt.Window.dispatchEventImpl(Window.java:1585)
at java.awt.Component.dispatchEvent(Component.java:3439)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:450)
at
java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.ja
va:197)
at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java
:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:144)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:136)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:99)
Caused by: java.lang.IllegalArgumentException
at
sun.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.
java:63)
at java.lang.reflect.Field.set(Field.java:519)
... 46 more
java.util.NoSuchElementException: Could not obtain next object: Error
setting field:positions in object:ch.eugster.pos.db.Receipt
at org.apache.ojb.broker.accesslayer.RsIterator.next(Unknown Source)
at
org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionByQuery(Unknow
n Source)
at
org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionByQuery(Unknow
n Source)
at
org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionByQuery(Unknow
n Source)
at
org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionByQuery(Unknow
n Source)
at
org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQuery(
Unknown Source)
at ch.eugster.pos.db.Receipt.getReceiptsByUserState(Receipt.java:183)
at
ch.eugster.pos.client.gui.ReceiptTableBlock.loadReceipts(ReceiptTableBlock.j
ava:58)
at
ch.eugster.pos.client.gui.ReceiptTableBlock.init(ReceiptTableBlock.java:50)
at
ch.eugster.pos.client.gui.ReceiptTableBlock.<init>(ReceiptTableBlock.java:39
)
at ch.eugster.pos.client.gui.ChildrenBlock.init(ChildrenBlock.java:34)
at ch.eugster.pos.client.gui.ChildrenBlock.<init>(ChildrenBlock.java:28)
at ch.eugster.pos.client.gui.UserPanel.init(UserPanel.java:58)
at ch.eugster.pos.client.gui.UserPanel.<init>(UserPanel.java:39)
at ch.eugster.pos.client.gui.TabPanel.addUser(TabPanel.java:67)
at ch.eugster.pos.client.gui.TabPanel.userLoggedIn(TabPanel.java:126)
at ch.eugster.pos.client.gui.LoginPanel.fireLoginEvent(LoginPanel.java:99)
at ch.eugster.pos.client.gui.LoginPanel.actionPerformed(LoginPanel.java:90)
at
ch.eugster.pos.client.gui.LoginBlock.fireActionEvent(LoginBlock.java:197)
at ch.eugster.pos.client.gui.LoginBlock.keyPressed(LoginBlock.java:156)
at java.awt.Component.processKeyEvent(Component.java:5051)
at javax.swing.JComponent.processKeyEvent(JComponent.java:2385)
at java.awt.Component.processEvent(Component.java:4902)
at java.awt.Container.processEvent(Container.java:1566)
at java.awt.Component.dispatchEventImpl(Component.java:3598)
at java.awt.Container.dispatchEventImpl(Container.java:1623)
at java.awt.Component.dispatchEvent(Component.java:3439)
at
java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1688
)
at
java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusMa
nager.java:593)
at
java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocu
sManager.java:765)
at
java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocu
sManager.java:698)
at
java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManag
er.java:559)
at java.awt.Component.dispatchEventImpl(Component.java:3468)
at java.awt.Container.dispatchEventImpl(Container.java:1623)
at java.awt.Window.dispatchEventImpl(Window.java:1585)
at java.awt.Component.dispatchEvent(Component.java:3439)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:450)
at
java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.ja
va:197)
at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java
:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:144)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:136)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:99)
rethrown as org.apache.ojb.broker.PersistenceBrokerException: Could not
obtain next object: Error setting field:positions in
object:ch.eugster.pos.db.Receipt
at
org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionByQuery(Unknow
n Source)
at
org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionByQuery(Unknow
n Source)
at
org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionByQuery(Unknow
n Source)
at
org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQuery(
Unknown Source)
at ch.eugster.pos.db.Receipt.getReceiptsByUserState(Receipt.java:183)
at
ch.eugster.pos.client.gui.ReceiptTableBlock.loadReceipts(ReceiptTableBlock.j
ava:58)
at
ch.eugster.pos.client.gui.ReceiptTableBlock.init(ReceiptTableBlock.java:50)
at
ch.eugster.pos.client.gui.ReceiptTableBlock.<init>(ReceiptTableBlock.java:39
)
at ch.eugster.pos.client.gui.ChildrenBlock.init(ChildrenBlock.java:34)
at ch.eugster.pos.client.gui.ChildrenBlock.<init>(ChildrenBlock.java:28)
at ch.eugster.pos.client.gui.UserPanel.init(UserPanel.java:58)
at ch.eugster.pos.client.gui.UserPanel.<init>(UserPanel.java:39)
at ch.eugster.pos.client.gui.TabPanel.addUser(TabPanel.java:67)
at ch.eugster.pos.client.gui.TabPanel.userLoggedIn(TabPanel.java:126)
at ch.eugster.pos.client.gui.LoginPanel.fireLoginEvent(LoginPanel.java:99)
at ch.eugster.pos.client.gui.LoginPanel.actionPerformed(LoginPanel.java:90)
at
ch.eugster.pos.client.gui.LoginBlock.fireActionEvent(LoginBlock.java:197)
at ch.eugster.pos.client.gui.LoginBlock.keyPressed(LoginBlock.java:156)
at java.awt.Component.processKeyEvent(Component.java:5051)
at javax.swing.JComponent.processKeyEvent(JComponent.java:2385)
at java.awt.Component.processEvent(Component.java:4902)
at java.awt.Container.processEvent(Container.java:1566)
at java.awt.Component.dispatchEventImpl(Component.java:3598)
at java.awt.Container.dispatchEventImpl(Container.java:1623)
at java.awt.Component.dispatchEvent(Component.java:3439)
at
java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1688
)
at
java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusMa
nager.java:593)
at
java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocu
sManager.java:765)
at
java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocu
sManager.java:698)
at
java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManag
er.java:559)
at java.awt.Component.dispatchEventImpl(Component.java:3468)
at java.awt.Container.dispatchEventImpl(Container.java:1623)
at java.awt.Window.dispatchEventImpl(Window.java:1585)
at java.awt.Component.dispatchEvent(Component.java:3439)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:450)
at
java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.ja
va:197)
at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java
:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:144)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:136)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:99)
Caused by: java.util.NoSuchElementException: Could not obtain next object:
Error setting field:positions in object:ch.eugster.pos.db.Receipt
at org.apache.ojb.broker.accesslayer.RsIterator.next(Unknown Source)
at
org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionByQuery(Unknow
n Source)
... 40 more
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.497 / Virus Database: 296 - Release Date: 4/7/2003
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]