Hi Dan, Thank you very much for that Dan, I thought I was seeing things for second. Thanks especially for such a clear and lengthy description. It must have taken you some time.
Cheers, Mark. -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Dan Christopherson Sent: 05 June 2003 17:00 To: [EMAIL PROTECTED] Subject: Re: [JBoss-user] Quick Explanation. Short answer - the BMP bean returns the keys because that's what the spec says to do. It really _should_ verify that the keys passed in are valid, but hey, it's an example! Long answer: That method would be exposed to clients on GangserHome.findByPrimaryKeys(Collection keys); The container intercepts that method and calls the BMP custom finder. The contract between container and BMP entity is such that the entity returns _keys_ from its 'ejbFindXXX' methods - the container is responsible for managing the creation of entities corresponding to the keys. At a later point (maybe in the same transaction, maybe in a subsequent one - it all depends on the client code), ejbLoad will be called on any and all entities in the collection that are actually accessed. That is when the bulk of data will (should, per spec.) be loaded from the database. Note that this means that for most finders, the database will be hit 1 (for the original query to determine which entities match) + N (once for each entity) times! This leads quickly to performance problems. To avoid this, either use CMP 2.0 entities, allowing the container to optimize the whole thing through read-ahead of entity data, or don't use entities at all. hth, -danch [EMAIL PROTECTED] wrote: > Hi folks, > > This snippet is taken from the JBOSSCMP docs. I can't understand > how > it returns the remote entities.It is a BMP custom finder. > > public abstract class GangsterBean implements EntityBean { > > public Collection ejbFindByPrimaryKeys(Collection keys) { > > return keys; > > } > > } > > > It just seems to take in the keys collection and then return it > straight > back out again. > I'm confused cos I can't see where the container would intercept the > call and > return the entities if the method is not declared abstract. > > > > Thanks, > > Mark. > ------------------------------------------------------- This SF.net email is sponsored by: Etnus, makers of TotalView, The best thread debugger on the planet. Designed with thread debugging features you've never dreamed of, try TotalView 6 free at www.etnus.com. _______________________________________________ JBoss-user mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-user ------------------------------------------------------- This SF.net email is sponsored by: Etnus, makers of TotalView, The best thread debugger on the planet. Designed with thread debugging features you've never dreamed of, try TotalView 6 free at www.etnus.com. _______________________________________________ JBoss-user mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-user