Hi again,

I think this issue has to something with the materialization of objects (when using proxies). But I thought that proxies are only used, when retrieving a corresponding collection of an object (in 1:n and m:n relations, e.g. ShoppingCart.getArticles()...).

What I'm doing when using findAll() (see below) is something like SELECT * FROM <tablename>. I thought, in this case no proxies are used???

Regards,

Abid


Abid Hussain schrieb:
Hi everybody,

I have written a storeAll()-method in a dao to store all given objects in one transaction (you find the code at the end of this mail).

Now please have a look at the following lines of code:
Account_2DAO dao1 = new Account_2DAO("DB1");
Collection<Account_2> accounts = dao1.findAll(Account_2.class);
logger.debug(accounts);
Account_2DAO dao2 = new Account_2DAO("DB2");
dao2.storeAll(accounts);

As you see, that there are two daos initialized. The first (dao1) retrieves all objects (using findAll()) from a database (DB1). The second (dao2) stores all retrieved objects into another database (DB2).
The findAll()-method works fine.

But the storeAll()-method only works when the line of code
logger.debug(accounts);
is called. If not, no data is inserted.

Any ideas what's going wrong (you find the class-descriptor file below)?

Regards,

Abid


Code of storeAll():
public void storeAll(Collection<T> valueObjects)
        throws PersistentStoringException {

    if (valueObjects != null) {
        try {
            broker.beginTransaction();
            for (T valueObject : valueObjects) {
                broker.store(valueObject, ObjectModification.INSERT);
            }
            broker.commitTransaction();
        } catch (Exception e) {
            broker.abortTransaction();
            throw new PersistentStoringException(
                    "Error while storing objects.\n" + e);
        } finally {
            if (broker != null && !broker.isClosed())
                broker.close();
        }
    }
}

Class-descriptor of Account_2:
<class-descriptor class="modulverwaltung.beans.Account_2"
    table="ACCOUNT_2" proxy="dynamic">
    <field-descriptor name="id" column="ID" primarykey="true"
        autoincrement="true" sequence-name="Account_Id_Seq" />
    <field-descriptor name="username" column="Username"
        jdbc-type="VARCHAR" />
    <field-descriptor name="role" column="Rolle" jdbc-type="VARCHAR" />
</class-descriptor>


--

Abid Hussain
Mail: [EMAIL PROTECTED]
Web: http://www.abid76.de

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

Reply via email to