Re: Still not understanding why getCollectionByQuery() is not getting sub-object.

2003-11-06 Thread LAURENT Stephane
Hi,
I'm now in RC4 but never have this kind of pb with RC2.
Just a difference for me, my repository contain this :
class-descriptor  class=com.jobbank.jobbank.model.offer.OfferVO table=offer  
refresh=true
Not this :
class-descriptor  class=com.jobbank.jobbank.model.offer.OfferVO table=offer 
auto-retrieve=true auto-update=false  auto-delete=false
But if you can retrieve objects manually, it's probably not your pb ...

I never seen this syntax before :field-descriptor  name=status-modified
Can I see your OrderItemVO object ?
Is status a member of OrderItemVO ?

Regards.
Stéphane LAURENT
- Original Message - 
  From: Robert J Celestino 
  To: OJB Users List 
  Sent: Tuesday, November 04, 2003 9:47 PM
  Subject: RE: Still not understanding why getCollectionByQuery() is not getting 
sub-object.


  Hello John, 

  I am stumped too (not that says very much, I am a newbie to OJB). 

  Have you tried RC4? 

  Bob c
  
  Bob Celestino
  SAS Research and Development
  919 - 531 - 9425
  [EMAIL PROTECTED]

  SAS - The Power to Know


 -Original Message-
 From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] 
 Sent: Tuesday, November 04, 2003 2:03 PM
 To: OJB Users List
 Subject: Still not understanding why getCollectionByQuery() 
 is not getting sub-object.
 
 
 
 
 
 Is anybody aware of anything in RC2 that would prevent 
 getCollectionByQuery() from realizing sub-objects?   I get 
 N records using getCollectionByQuery() successfully, but 
 this OfferVO subobject continues to not show its ugly head 
 unless I manually get each sub-object.
 
 I have auto-retrieve=true everywhere.
 
 I successfully get a different sub-reference on a different 
 non-collection object. My mapping is correct in that manual 
 retieval works.
 
 I thought sub-objects would be realized with 
 getCollectionByQuery() unlike with getIteratorByQuery().
 
 
 I am wondering if it could have something to do with the 
 fact that the Collection of OrderItemVO has 3 primary keys 
 or something to do with the below setting in the 
 OJB.properties I needed to allow for '-' Single Table 
 Aggregation.  '-' was only allowed as far as I know in RC2 
 using this setting.  I don't know if it was implemented in 
 the default setting since.
 
 PersistentFieldClass=org.apache.ojb.broker.metadata.fieldacc
 ess.PersistentNestedFieldMaxPerformanceImpl
 
 
 My repository.xml as it is today for the two important 
 tables follows:
 
 
 
 !-- Definitions for the OrderItemVO object which is 
 retrieved with the getCollectionByQuery()  -- 
 class-descriptor 
 class=com.jobbank.jobbank.model.order.OrderItemVO 
 table=orderitem
 field-descriptor
 name=offerId
 column=offerid
 jdbc-type=INTEGER
 primarykey=true
 /
 field-descriptor
 name=memberId
 column=mid
 jdbc-type=INTEGER
 primarykey=true
 /
 field-descriptor
 name=orderId
 column=orderid
 jdbc-type=INTEGER
 primarykey=true
 /
 field-descriptor
 name=offerQuantity
 column=offerquantity
 jdbc-type=INTEGER
 /
 field-descriptor
 name=buyLater
 column=buylater
 jdbc-type=INTEGER
 
 conversion=org.apache.ojb.broker.accesslayer.conversions.Bo
 olean2IntFieldConversion
 /
 field-descriptor
 name=status-modified
 column=modified
 jdbc-type=TIMESTAMP
 /
 field-descriptor
 name=status-added
 column=added
 jdbc-type=TIMESTAMP
 /
 field-descriptor
 name=status-disabled
 column=disabled
 jdbc-type=INTEGER
 
 conversion=org.apache.ojb.broker.accesslayer.conversions.Bo
 olean2IntFieldConversion
 /
 reference-descriptor
 name=offer
 class-ref=com.jobbank.jobbank.model.offer.OfferVO
 auto-retrieve=true
 auto-update=false
 auto-delete=false
   foreignkey field-ref=offerId/
 /reference-descriptor
 /class-descriptor
 
 
 
 
 !-- Definitions for the OfferVO object which won't 
 retrieve itself automatically -- class-descriptor 
 class=com.jobbank.jobbank.model.offer.OfferVO table=offer
   auto-retrieve=true auto-update=false 
 auto-delete=false
 field-descriptor
 name=offerId
 column=offerid
 jdbc-type=INTEGER
 primarykey=true
 /
 field-descriptor
   

RE: Paging performance issues

2003-11-06 Thread Charles Anthony
Hi

 1) Using getStartAtIndex() and getEndAtIndex(): this sounds like an
 efficient way but if I look into the DB log there's no LIMIT option in
 the SQL query! This is really surprising isn't it? 

Currently, OJB does not attempt to use the LIMIT option. This is not
particularly surprising, since the LIMIT option is not available on all
databases, and, moreover, the syntax is wildly different between different
database. 20 minutes research comes up with the following for different
flavours of database.

DB2   SELECT . FETCH FIRST n ROWS ONLY
MS-SQLSELECT TOP n ... 
OracleSELECT ... WHERE rownum  n and rownum  m
MySql SELECT ... LIMIT m,n
PostGress SELECT ... LIMIT n OFFSET m
HSQL  SELECT m,n ... 

You'll note that they are very different. (I suspect that some of my syntax
above maybe wrong - I just sat down with google and searched for a bit).

You'll also note that I am not saying that OJB *shouldn't* support the
ability to use the above syntaxes, just that it's not surprising that it
doesn't. 


Cheers,

Charles.


___
HPD Software Ltd. - Helping Business Finance Business
Email terms and conditions: www.hpdsoftware.com/disclaimer 



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



RE: Opitimistic Lock with the PB API

2003-11-06 Thread oliver . matz
Hello Arbona,

 -Original Message-
 From: Arbona Vincent [mailto:[EMAIL PROTECTED]

 I want to know how to use optimistic lock with the PB API.
  
 I know that I have to put a Lock Field as integer or 
 timestamp, but how OJB manage it?
  
 When a record is considered as locked and when the lock is removed?

You do not explicitely request or release a lock.

It is simply that an OptimisticLockException is thrown during 
PersistenceBroker.store(x) in case x has been modfied after
x has been read from the database.

You can verify what is going on by switching on p6spy.

HTH,
Olli

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



ojb and distributed applications

2003-11-06 Thread Martin Dengler
hi @all,

i am an ojb newbie; 
any help is appreciated concerning the following questions:

1. ojb supports the definition of more than one jdbc-connection descriptor
element at repository.xml; 
- does that mean, that persistent data could be stored across more than one
physical database server? 
- how about distributed transactions? does ojb implement a 2-phase-commit
transaction service? if not, is it possible to use an external JTS-compatible
transaction manager, provided by a J2EE Container?

2. the docu says: OJB does connection pooling per default, expect for
datasources
- does that mean, that OJB can be used with external managed connection
pooling (e.g. j2ee container connection pooling)? 
- how do i specify in repository.xml, whether a connection is of type
datasource or not?

thanx for helpin

marty  

-- 
NEU FÜR ALLE - GMX MediaCenter - für Fotos, Musik, Dateien...
Fotoalbum, File Sharing, MMS, Multimedia-Gruß, GMX FotoService

Jetzt kostenlos anmelden unter http://www.gmx.net

+++ GMX - die erste Adresse für Mail, Message, More! +++


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



Cascading Updates and Dirty Objects

2003-11-06 Thread Gary
I would like to use cascading update, but am concerned
about the overhead involved in updating objects in the
graph that have not changed.

Would this modification make sense, or is it naive?

1. Create a new interface called IDirtyAware or
something similar that contains an isDirty() method.
 Any object can optionally implement this interface.
2. In the executeUpdate() method of whoever
implements the JdbcAccess interface (currently
JdbcAccessImpl), a check is done against the object:
 a. if it doesn't implement IDirtyAware, processing
continues as it does today.
 b. if it does implement IDirtyAware:
  1. If dirty, processing continues as it does today.
  2. If not dirty, no update is performed, but the
object graph continues to be traversed.

Possible?  I imagine I'm missing something major, but
I'd love to have something similar implemented.

Gary

__
Do you Yahoo!?
Protect your identity with Yahoo! Mail AddressGuard
http://antispam.yahoo.com/whatsnewfree

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



RE: Is it possible to have the any type mapping as Hibernate?

2003-11-06 Thread Rice Yeh
Hi Archie,
  I will try to come out all the files needed to be
modified in order to support interface traversing in
nested field mapping and send it to your email
address. The basic idea is that I introduce a new
attribute called class-path to configure the
concrete classes for abstract class and interface.
This is a kind of polymorphic problems which seems not
easy to solve as the original problem in this serie of
discussions. I think a better solution is to find the
concrete class dyanmically during object traversing in
a nested path with the class information stored in a
field of a row as you suggested in your mail.

Regards,
Rice

--- Archie [EMAIL PROTECTED] wrote:
 hello Thomas,
   Is there documentation about using DListImpl to
 support polymorphic? Or this feature just works in
 odmg api? how about other api?
 
   By the way, one feature in Hinbernate impress me
 is
 that it has a type called class to store the
 field's
 class as string (java.lang.getClass()). Only with a
 feild's class stored in a row, it is possible to
 implement ploymorphic. With serializable object
 stored
 as binary, much informatin is lost for doing query
 (for example, I just want query elements with some
 specific class in a containing object). Am I right?
 
   Another issue I met in mapping is when using
 nested
 field I must force my code to declare intermediate
 fields as concrete class, for example,
 InterfaceImpleClass instead of Interface. Otherwise,
 an error will happen when retrieving object from
 database. I search the mail list archive, Rice had
 posted a solution. But I still have this problem in
 rc4.
 
   Finally, I must say 'thank you' to all of you to
 provide OJB. I like it (though I seem raising too
 many
 mapping problems). I have used other commercial JDO
 compatiable products and I found they also have
 similar mapping problems. For OJB, it does quite
 good
 in OR mapping. For Hibernate, I do not like it much
 because it force me to wirte many setXXX methods for
 properties that should be read-only. For OJB, its
 instrumenation to object models is not much since
 the
 introduction of anonymous fields.
 
 cheers
 Archie
 
 
 hello Rice,
   Could you mail me the solution to the problem I
 mentioned in the above?
 
 thank you
 Archie
 
   Just have a look at the 
   o.a.ojb.odmg.collections.DListImpl class.
   It is a list implementation that can hold
 elements
   of arbitrary persistent
   classes.
   
   The trick is that we store serialized Identity
   objects as pointers to the
   actual objects.
   If you look at the DListImpl code you will see
 how
   easy it is.   
 
 
 
 
 --- Rice Yeh [EMAIL PROTECTED] ªº°T®§¡G Hi
 Thomas,
I am not familiar with ODMG but I will go to
 study
  it. One question needs your help, is it meant that
  in
  the mapping file for this DListImpl I do not need
 to
  configure the attribute element-class-ref for
  collection-descriptor tag?

  Regards,
  Rice
  
  --- Mahler Thomas [EMAIL PROTECTED]
  wrote:
   Hello Rice,
   
   
Hi,
  I have been using OJB for some period. I am
   taking a
project left by a partner that uses Hinbernate
  for
persistence. So I start studying Hibernate.
   Hibernate
has a mapping function called any type
 mapping
   that
is defined as the follows:

The any mapping element defines a
 polymorphic
association to classes from multiple tables.
  This
   type
of mapping always requires more than one
 column.
   The
first column holds the type of the associated
   entity.
The remaining columns hold the identifier. It
 is
impossible to specify a foreign key constraint
  for
this kind of association, so this is most
   certainly
not meant as the usual way of mapping
   (polymorphic)
associations.

This kind of mapping is quite useful when
  dealing
   with
fields of java.lang.Object or interface.
  However,
   as I
know, there is no such support in OJB. 
   
   That's not true!
   OJB allows to build completely polymorphic
  mappings.
   Just have a look at the 
   o.a.ojb.odmg.collections.DListImpl class.
   It is a list implementation that can hold
 elements
   of arbitrary persistent
   classes.
   
   The trick is that we store serialized Identity
   objects as pointers to the
   actual objects.
   If you look at the DListImpl code you will see
 how
   easy it is.
   
   cheers,
   Thomas
   
   
I try to study
the source code of OJB, but am still not able
 to
figure out the way to modify it (The xml
 mapping
handling code is a little hard to understand,
  just
wonder if it is possible to re-write it with
  Jibx
   to
make it more concise). 

Regards,
Rice


__
Do you Yahoo!?
Exclusive Video Premiere - Britney Spears
http://launch.yahoo.com/promos/britneyspears/

   
  
 

-
To unsubscribe, 

RE: Paging performance issues

2003-11-06 Thread Vincent Frison
Le jeu 06/11/2003 à 08:57, Charles Anthony a écrit :
 Hi
 
  1) Using getStartAtIndex() and getEndAtIndex(): this sounds like an
  efficient way but if I look into the DB log there's no LIMIT option in
  the SQL query! This is really surprising isn't it? 
 
 Currently, OJB does not attempt to use the LIMIT option. This is not
 particularly surprising, since the LIMIT option is not available on all
 databases, and, moreover, the syntax is wildly different between different
 database. 20 minutes research comes up with the following for different
 flavours of database.
 
 DB2   SELECT . FETCH FIRST n ROWS ONLY
 MS-SQLSELECT TOP n ... 
 OracleSELECT ... WHERE rownum  n and rownum  m
 MySql SELECT ... LIMIT m,n
 PostGress SELECT ... LIMIT n OFFSET m
 HSQL  SELECT m,n ... 
 

Wow, thanks to the SQL standard!

 You'll note that they are very different. (I suspect that some of my syntax
 above maybe wrong - I just sat down with google and searched for a bit).
 
 You'll also note that I am not saying that OJB *shouldn't* support the
 ability to use the above syntaxes, just that it's not surprising that it
 doesn't.

Yes IMHO I think OJB should really support these specific syntaxes.
Without being a DB guru I can say that very big SELECT queries with
LIMIT options could avoid serious overload, so I hope that one these
days a courageous OJB hacker will try to implement it..

Vincent


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



SQL Server and Oracle problems.

2003-11-06 Thread Cobble, Tim
All,

I am trying to compare different RDBMs.  I can get all three (MySQL, MS
SQL, and Oracle) working with one client.  When I try to test the
scaling abilities, MS SQL and Oracle choke.  I can only get a few
simultaneous connections.  Seems unlimited with MySQL.  

I know this is not a DB problem since I am comparing this with EJB's and
they scale as expected.  I am able to use 50 clients with all three DBs.

I have been using the MS Driver, JTDS, and JSQL for MS SQL; and the
Oracle released driver.

Complete failure with JTDS =Rollback on the underlying connection
failed.  And you cannot rollback during a managed transaction.

This is deployed on JBoss.  Only doing a simple SELECT * from
table_name;

Any clues?  Thanks in advance!

Tim
Will provide any requested code/xml files.

Pertinent snippets attached.
SQL SERVER REPOSITORY_DATABASE.XML:
   jdbc-connection-descriptor
jcd-alias=default
default-connection=true
platform=MsSQLServer
jdbc-level=2.0
jndi-datasource-name=java:PeerReviewDS
username=sa
password=
eager-release=false
batch-mode=false
useAutoCommit=0
ignoreAutoCommitExceptions=false
   

#
JBOSS DATASOURCES FOR MS SQL:

MS DRIVER:
datasources
  local-tx-datasource
jndi-namePeerReviewDS/jndi-name
 
connection-urljdbc:microsoft:sqlserver://myIPaddress:1433;SelectMethod
=Cursor;database=peer_review_db/connection-url
 
driver-classcom.microsoft.jdbc.sqlserver.SQLServerDriver/driver-class

user-namesa/user-name
password/password
  /local-tx-datasource

/datasources

#

JSQL:
datasources
  local-tx-datasource
jndi-namePeerReviewDS/jndi-name
 
connection-urljdbc:JSQLConnect://myIPAddress:1433/database=master/con
nection-url
driver-classcom.jnetdirect.jsql.JSQLDriver/driver-class
user-namesa/user-name
password/password
  /local-tx-datasource

/datasources #

JTDS:
datasources
  local-tx-datasource
jndi-namePeerReviewDS/jndi-name
 
connection-urljdbc:jtds:sqlserver://myIPAddress;SelectMethod=C
ursor;DatabaseName=peer_review_db/connection-url
driver-classnet.sourceforge.jtds.jdbc.Driver/driver-class
user-namesa/user-name
password/password
  /local-tx-datasource

/datasources


#
ORACLE REPOSITORY_DATABASE.xml:
   jdbc-connection-descriptor
jcd-alias=default
default-connection=true
platform=Oracle9i
jdbc-level=2.0
jndi-datasource-name=java:PeerReviewDS
username=prdatauser
password=password
eager-release=false
batch-mode=false
useAutoCommit=0
ignoreAutoCommitExceptions=false

#
JBOSS DATASOURCE FOR ORACLE:
datasources
  local-tx-datasource
jndi-namePeerReviewDS/jndi-name
 
connection-urljdbc:oracle:thin:@myIPAddress:1521:prdata/connection-ur
l
driver-classoracle.jdbc.driver.OracleDriver/driver-class
user-nameprdatauser/user-name
passwordpassword/password
 
exception-sorter-class-nameorg.jboss.resource.adapter.jdbc.vendor.Orac
leExceptionSorter/exception-sorter-class-name
  /local-tx-datasource

/datasources

#

CONNECTIONFACTORYCLASS=org.apache.ojb.broker.accesslayer.ConnectionFacto
ryManagedImpl

#

TYPICAL REPOSITORY_USER.XML ENTRY
class-descriptor class=perlgen.TDefectType table=T_Defect_Type
  field-descriptor name=defect_type_id column=Defect_Type_ID jdbc-type=INTEGER 
primarykey=true/
  field-descriptor name=severity column=Severity jdbc-type=VARCHAR/
  field-descriptor name=description column=Description jdbc-type=VARCHAR/ 
/class-descriptor

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

PhillyJug OJB (and Spring) Presentation

2003-11-06 Thread Brian McCallister
Thomas Risberg (Spring developer) and I have been asked to do a 
combined presentation on OJB and Spring at an upcoming PhillyJUG 
meeting and we need to figure out what exactly we are going to present.

Anyone have any suggestions?

-Brian



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


RE: SQL Server and Oracle problems.

2003-11-06 Thread Cobble, Tim
Just an update.  I took the problem off line and tried it command line.
I am able to get multiple clients with both SQL Server and Oracle.
Perhaps it is something with JBoss?

Any suggestions welcome.

Tim

-Original Message-
From: Cobble, Tim 
Sent: Thursday, November 06, 2003 1:30 PM
To: OJB Users List
Subject: SQL Server and Oracle problems.

All,

I am trying to compare different RDBMs.  I can get all three (MySQL, MS
SQL, and Oracle) working with one client.  When I try to test the
scaling abilities, MS SQL and Oracle choke.  I can only get a few
simultaneous connections.  Seems unlimited with MySQL.  

I know this is not a DB problem since I am comparing this with EJB's and
they scale as expected.  I am able to use 50 clients with all three DBs.

I have been using the MS Driver, JTDS, and JSQL for MS SQL; and the
Oracle released driver.

Complete failure with JTDS =Rollback on the underlying connection
failed.  And you cannot rollback during a managed transaction.

This is deployed on JBoss.  Only doing a simple SELECT * from
table_name;

Any clues?  Thanks in advance!

Tim
Will provide any requested code/xml files.

Pertinent snippets attached.

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



Is it any taglib for OJB?

2003-11-06 Thread A Leg
Hi

I would like to work with OJB.
Is it any JSTL taglib for OJB
Best regards

Andre

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


Re: Inheritance delete

2003-11-06 Thread balza
Ciao Danilo,
your solution and OJB works well!
Was another silly newbie question ;-)
Thank you



Danilo Tommasina wrote:

hi,


this means that a ShopTransaction is composed by a ShopTransaction 
and a Transaction database entries. Because of the flag 
auto-delete=true what you are experiencing is absolutely normal.
Also you have 2 entries in different tables for one ShopTransaction 
instance, deleting the ShopTransaction will remove the entries in 
the 2 tables. 


Is exactly what I want! When is deleted the record with 
transaction_id = 2041 in table ShopTransaction,  the delete action 
should be propagated to table Transaction, but in my log I've 2 
delete: a delete on table ShopTransaction with transaction_id = 2022 
and a delete  in table Transaction_id=2042


uh, there is nothing wrong about this, you have 2 db entries so so you 
need 2 DELETE statements, the Transaction has a foreignkey on 
ShopTransaction's primary key, however there is no constraint that 
says Transaction.transactionId must be equal to 
ShopTransaction.transactionId

Now you could just make ShopTransaction.transactionId an anonymous 
field so that it will not appear in you object model and just use 
Transaction.transactionId as your object's primary key.



   transaction = new ShopTransaction();
   transaction.setTransaction_id(transaction_id);
   Criteria crit = new Criteria();
   crit.addEqualTo(transaction_id, new 
Integer(transaction_id));
   Query query = 
QueryFactory.newQuery(ShopTransaction.class,crit);

1. you should declare transaction as local method variable and not 
use a class variable
2. you do not need to generate a query (you don't do anything with 
it anyways in this piece of code)

when deleting an instance (and the primary key is set) OJB should 
manage to delete the correct object even if it has not been 
completely materialised, so you do not need to do any query. 


1. I've seen this example in the tutorial. I don't understand how 
this can make the difference.
2. How can I get and delete a ShopTransaction (and Transaction) with 
a specified transaction_id without instantiate a new ShopTransaction ?

Thank you

Ok try this code:

Criteria c= new Criteria();
c.addEqualTo( super.transactionId, new Integer( transactionId ) );
The only correction is
   c.addEqualTo( transaction_id, new Integer( transactionId ) );
Query q= new QueryByCriteria( ShopTransaction.class, c );

broker.beginTransaction();
Object obj= broker.getObjectByQuery( q );
if ( obj != null ) {
broker.delete( obj );
}
broker.commitTransaction();
(I didn't try the code, I hope there is no syntax error)

bye
danilo





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


Re: ReportQueryRsIterator

2003-11-06 Thread Jakob Braeuchi
hi dougall,

i'll have a look at startIndex for Iterators. endIndex is imo not possible.

jakob

Dougall Squair wrote:

Hi,

Should the class org.apache.ojb.broker.accesslayer.ReportQueryRsIterator
also set the cursor position
e.g. Like the code in

org.apache.ojb.broker.core.PersistenceBrokerImpl#getCollectionByQuery(Class
collectionClass, Class itemClass, Query query)
int startAt = query.getStartAtIndex();
int endAt = query.getEndAtIndex();
if (startAt  1)
{
// needs to be just before startAt, as next() is called for
first result.
iter.absolute(startAt - 1);
}
if (endAt  startAt)
{
// BRJ : make sure endAt  startAt
endAt = iter.size() + 1;
}
at the moment report queries seems to be ignoring the startAt and endAt
values which have been set within a Query.
Regards

Dougall

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


Re: Simple performance improvement Re: m:n relations mapping...

2003-11-06 Thread Jakob Braeuchi
hi andy, oliver,

the patch is checked in.

olli please have a look at the method _storeCollections_ when time 
permits, i think it needs refactoring.

jakob

Andy Malakov wrote:

Thanks. 

In my case eliminating extra SELECT and DELETE for MtoNImplementor (as described below) made batch inserts 5 times faster.

- Original Message - 
From: [EMAIL PROTECTED]
To: [EMAIL PROTECTED]; [EMAIL PROTECTED]
Sent: Tuesday, November 04, 2003 5:06 AM
Subject: RE: Simple performance improvement Re: m:n relations mapping...



Hello Andy,

I will have a look at it when I have time.

Please post messages like this to the OJB
users' or developers' list.
Thank you,
Olli
-Original Message-
From: Andy Malakov [mailto:[EMAIL PROTECTED]
Sent: Friday, October 31, 2003 9:57 PM
To: [EMAIL PROTECTED]
Subject: Re: Simple performance improvement Re: m:n relations mapping...
Excellent.

Now how about going one step further and eliminating extra SELECT ? :-)))

We do not need to retrieve link table entries in case of new objects.

Class: org.apache.ojb.broker.core.PersistenceBrokerImpl:
Method: storeCollections(Object obj, Vector vecCds, boolean insert)
Line: 789
Now:
...
if (cds.isMtoNRelation())
{
   currentMtoNKeys = getMtoNImplementor(cds, obj);
   // delete unused m:n implementors
   if (!insert)
   {
 deleteMtoNImplementor(cds, obj, (Collection)col, currentMtoNKeys);
   }
}
Better:

...
if (cds.isMtoNRelation())
{
   if (insert) {
currentMtoNKeys = java.util.Collections.EMPTY_LIST; // assume no
link table entries exist for new objects
   } else {
currentMtoNKeys = getMtoNImplementor(cds, obj);
// delete unused m:n implementors
deleteMtoNImplementor (cds, obj, (Collection) col,
currentMtoNKeys);
   }
}

I tested it with P6SPY - the above fix makes extra SELECTs disappear.
This two fixes make batch inserts of complex object work faster :-)
Thanks a lot for you product,
Andy




- Original Message - 
From: [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Friday, October 31, 2003 4:41 AM
Subject: RE: Simple performance improvement Re: m:n relations mapping...



Hello,


-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
I am uncertain whether we should fix it because it does
mean a (very minor) change of behaviour.  I tend to 'yes'.
I have just committed a fix.

Olli

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


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


Smart Count

2003-11-06 Thread Daniel R. Ambrosio
Hello everyone,

What would be the smarter way to do a count on an entity based on a 
criteria?

I believe that getting the Collection (using getCollectionByQuery()) and 
then size() is not the best way to that using OJB is it?

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


General Questions about ODMG API

2003-11-06 Thread Sören Kress
Hi,

I am new to OJB and I would like to read some more documentation about ODMG.
Are there any (general) documents about ODMG available (free on the
internet)? The ODMG seems to have stopped its activities.

Or is there any opensource application that uses OJB and the ODMG api where
I could learn anything.

Thanks in advance.

Soeren


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



Load Object References for GetObject() but not GetAllObjects()

2003-11-06 Thread Shane Mingins
Hi

If I use auto-retrieve to automatically load collection objects for my
object graph 
e.g. getChannel() loads the full object graph as shown

 0..*  0..*
Channel -Product---Fund


But if I wish to provide just a list of Channel names for a select box I do
not wish to return the entire object graph for each Channel.

IOW if Channel.name is a String I just want a collection of Strings, each
being a channel name.

Is that possible?   And if so, how?

Thanks 
Shane

Shane Mingins
Analyst Programmer
Assure NZ Ltd
Ph 644 494 2522



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