It is a standalone program and the database is Oracle.

Here is the sample code:

Product product = new Product();
product.setProductCode("AAA");
product.setDesc("BBB");
 
PersistenceBroker broker = null;
try
{
    broker =
PersistenceBrokerFactory.defaultPersistenceBroker();
    broker.beginTransaction();
    // assuming "AAA" is a new record that does not
exist in database
    broker.store(product,
ObjectModificationDefaultImpl.INSERT);

    Query query = new QueryByCriteria(Product.class,
null);
    Collection all =
broker.getCollectionByQuery(query);
    Iterator iter = all.iterator();
    while (iter.hasNext())
    {
        // "AAA" will not be printed
        System.out.println(iter.next());
    }
    broker.commitTransaction();
}
catch (Throwable t)
{
     broker.abortTransaction();
     t.printStackTrace();
}
finally
{
    try
    {
        broker.close();
    }
    catch (Exception e)
    {
    }
}
// "AAA" will be in database after the program
finishes.

Thanks,
Zhe

-----Original Message-----
From: Armin Waibel [mailto:[EMAIL PROTECTED]
Sent: Friday, January 16, 2004 12:53 AM
To: OJB Users List
Subject: Re: FW: Cannot retrieve back just saved
objects without
committing transaction


Hi Zhe,

ZZZ Liu wrote:

> Hi, Armin
> 
> Thanks a lot for your reply. I am using PB-api and
the
> batch mode is turned on (in repository_database.xml,
> batch-mode="true" for jdbc-connection-descriptor). I
> found that database operations are not applied to db
> until transaction is commited. For example, if I try
> to insert null into a "not null" field, I won't get
> exception until transaction is commited. Is the
> problem caused due to batch-mode=true?
> 

hmm, set batch-mode 'true' enables OJB to use batch
operations if your 
DB supports it. But you have to call 
broker.getConnectionManager().setBatchMode("true")
before begin with 
pb-tx to start a batchable session. If you do so, then
the answer is yes.

I assume your problem is another. Are you sure that
you always use the 
same PB instance?
What's the environment - servlet, stand-alone,
managed-environment?
Can you post your sample code?

regards,
Armin

> Thanks,
> Zhe
> 
> 
>>
>>-----Original Message-----
>>From: Armin Waibel [mailto:[EMAIL PROTECTED]
>>Sent: Thursday, January 15, 2004 2:25 AM
>>To: OJB Users List
>>Subject: Re: Cannot retrieve back just saved objects
>>without committing
>>transaction
>>
>>
>>Hi Zhe,
>>
>>ZZZ Liu wrote:
>>
>>>Hi, all
>>>
>>>I have a problem when I try to insert an object in
>>
>>a
>>
>>>data base table and then try to retrieve all
>>
>>records
>>
>>>from that table. I use the same persistence broker
>>
>>for
>>
>>>the above two operations.
>>>I found that if I don't
>>>commit the transaction after save, the retrieved
>>>records won't include the new record just saved.
>>
>>If you are using PB-api this should work.
>>PersistenceBroker has same 
>>behaviour as a "pur Connection". If you start a
>>PB-tx a connection was 
>>associated with the PB instance. Do you enable batch
>>mode?
>>
>>The ODMG-api is different, it collects all changes
>>till commit is 
>>called. To write changes to DB while the tx is
>>running, you have to call 
>>proprietary TransactionExt#flush() method.
>>
>>regards,
>>Armin
>>
>>
>>>I am
>>>wondering whether anybody else ever had this
>>
>>problem
>>
>>>and whether this is a bug or is designed in this
>>
>>way.
>>
>>>But I know if I use JDBC directly, and if I insert
>>
>>a
>>
>>>record in a database table, even though it is not
>>>commited, the record should be visible to current
>>>session (connection).
>>>
>>>I am using rc5. Any help or comments on this
>>
>>problem
>>
>>>would be much appreciated.
>>>
>>>Thanks in advance.
>>>Zhe
>>>
>>>__________________________________
>>>Do you Yahoo!?
>>>Yahoo! Hotjobs: Enter the "Signing Bonus"
>>
>>Sweepstakes
>>
>>>http://hotjobs.sweepstakes.yahoo.com/signingbonus
>>>
>>>
>>
>
---------------------------------------------------------------------
> 
>>>To unsubscribe, e-mail:
>>
>>[EMAIL PROTECTED]
>>
>>>For additional commands, e-mail:
>>
>>[EMAIL PROTECTED]
>>
>>>
>>>
>>
>>
>>
>
---------------------------------------------------------------------
> 
>>To unsubscribe, e-mail:
>>[EMAIL PROTECTED]
>>For additional commands, e-mail:
>>[EMAIL PROTECTED]
>>
>>
> 
> 
> 
> __________________________________
> Do you Yahoo!?
> Yahoo! Hotjobs: Enter the "Signing Bonus"
Sweepstakes
> http://hotjobs.sweepstakes.yahoo.com/signingbonus
> 
>
---------------------------------------------------------------------
> To unsubscribe, e-mail:
[EMAIL PROTECTED]
> For additional commands, e-mail:
[EMAIL PROTECTED]
> 
> 
> 



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



__________________________________
Do you Yahoo!?
Yahoo! Hotjobs: Enter the "Signing Bonus" Sweepstakes
http://hotjobs.sweepstakes.yahoo.com/signingbonus

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

Reply via email to