Hi Atong, > -----Original Message----- > From: A mailing list for Enterprise JavaBeans development > [mailto:[EMAIL PROTECTED]]On Behalf Of Atong Appa > Sent: Monday, January 14, 2002 7:17 PM > > I have a few issues with EJB's persistence. In fact, the > first one of these > problems is not even unique to EJB, but OO paradigm in > general. Many of > objects has many columns of data (over 100 columns). When an > application is > running, the user typically works only with only a handful of > these columns > (human beings are not equipped to deal with 100's of pieces > of info all at > once). > > So, different applications ('modules' to be exact) work on > different subsets > of this large number of columns. Yet, the business logic must be > centralized and managed in the context of one object class (like you > mentioned). > > The problem is that OO paradigm wants the entire object to be > realized in > memory before anything happens. This causes memory usage problems, > scalability problems, and performance problems. Previously, > we've attempted > to implement 'partially initialized' object, but, like you > said, this ended > up strewing bits of SQL in many places--maintenance problems. > > For this kind of problems, EJB CMP is inappropriate. With BMP, we are > likely to end up with SQL spread out. Is there something in > EJB to help out > with this kind of problem? >
Some vendors have optimizations for this type of thing. For instance, Weblogic has the concept of field groups. Here's the documentation on them from the XDoclet docs on the @weblogic:field-group tag: A field-group represents a subset of the cmp and cmr-fields of a bean. Related fields in a bean can be put into groups which are faulted into memory together as a unit. A group can be associated with a query or relationship, so that when a bean is loaded as the result of executing a query or following a relationship, only the fields mentioned in the group are loaded. A special group named 'default' is used for queriess and relationships that have no group specified. By default, the 'default' group contains all of a bean's cmp-fields and any cmr-fields that add a foreign key to the persistent state of the bean. A field may belong to multiple groups. In this case, the getXXX() method for the field will fault in the first group (lexically speaking) that contains the field. In this way you can have partially initialized objects that only pull in the pieces it thinks it needs... While this is a vendor-specific optimization, it is mapped into the weblogic deployment descriptor, so it does not make your code any less portable (although you won't have these optimizations on another product, unless they have something similar). HTH, Jason Carreira =========================================================================== To unsubscribe, send email to [EMAIL PROTECTED] and include in the body of the message "signoff EJB-INTEREST". For general help, send email to [EMAIL PROTECTED] and include in the body of the message "help".
