On Wed, 30 Jun 1999, Aravind Selvaraje wrote:
> Hi,
>
> Tom Valesky wrote:
> >
> >
> > Well, with BMP you could just pass in a SQL "where" clause and concatenate
> > it onto the tail of the SQL you're using for the finder.
>
> Apart from issues with the database, which will be taken care off, are
> there any implications on the EJB Server itself. An entity bean is
> supposed to be resusable by the container/server ? If I have a lot of
> clients making calls to these beans with dynamic finder methods, what
> impact does this have on the Server scalability ?
> With such as scenario, how does the server make the decision to reuse an
> entity bean ?
First, let me crank out some pseudocode that describes what I have in
mind:
public ejbFindByAbitraryConditions(String arbitraryConditions)
{
String query = "select my_pk from my_table where" + arbitraryConditions;
ResultSet rs = executeQuery(query); //_pseudo_code :-)
//bundle up PK enumeration and return it
}
So, the finder method itself never changes; only the query conditions
change. There's no _real_ difference between this and any other BMP
finder. (Finders are invoked on entity instances in the pooled state (when
they have no identity), and no state will be retained across finder
invocations, so I don't see any scaling problems).
The drawback to this is that you're executing dynamic SQL that was
generated elsewhere, so you're opening yourself to being handed a large
and complex query by your client. In systems where I've used this approach
(non-EJB systems, I hasten to add), I've addressed this by restricting the
search interface presented to the user -- typically, I only allow searches
against a single table, and only against columns that are indexed.
============================================================================
Tom Valesky -- [EMAIL PROTECTED] -- http://www.patriot.net/users/tvalesky
===========================================================================
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".