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".

Reply via email to