Using EJB means that you can use CMP, BMP or an Object/Relation Mapping tool. I have found CMP to be very limited. I have found BMP with stored procedures way more flexible when working with relational database and I have found Object/Relation mapping even better. An O/R mapping tool like Cocobase allows you decouple your objects from your data model via dynamic binding. CMP will tightly bind your objects to your data - which according to the Patterns community is a bad thing. My experience with CMP leads me to believe that its creators/supporters are a religious myopic bunch. First there is EJB 1.0, then EJB 1.1 and now EJB 2.0 which btw cannot handle Primary Key creation via Identity/Sequence column without a hack. In heterogeneous environments where you have multiple applications talking to the same database, the database engine must be in charge of Primary key generation.
 
As for "There is absolutely no hit on performance if you pull out all of your business logic into a slsb or cmp...there's just no need to use store procedures any more."
 
It is a fact that static SQL runs faster that dynamic SQL, and (generally) pre-compiled Stored procedures run faster than static SQL. So, in a model that employs multiple tiers, improving the speed in one tier can improve the overall speed of you application, watch out for network I/O though.
 
My 2 cents,
 
Bill G...
-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of Cristian Donciulescu
Sent: Thursday, September 06, 2001 1:41 AM
To: Orion-Interest
Subject: Stored procedures and J2EE

Is it possible (and recommended) to use stored procedures with the J2EE architecture? We would be interested in creating objects directly into the database, bypassing the create method of the enterprise bean. Is this possible when using CMP (Container Managed Persistence)? If not, in your opinion, which is best: using BMP and stored procedures or using CMP?

 

Example: We have an Oracle DB that uses packages associated to the business objects of the system. These packages contain the PL/SQL methods of the corresponding business objects.  Additionally every business object's fields are stored as columns of a specific table. The constructor of a business object is also a method in the associated package. The inheritance relation between two objects is modeled by making the primary key of the child object's table reference the primary key field of the parent object's table. This reference means that the child inherits the fields of the parent. Thus, the constructor of a child object, which is passed all the parameters required for itself and its parent's initialization, will call the constructor of its parent passing the appropriate parameters. The question is:

 

How could such constructors be used without conflicting with the create methods of the CMP entity beans?


Get your FREE download of MSN Explorer at http://explorer.msn.com

Reply via email to