File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes EJB and other Java EE Technologies and the fly likes EJB3.0 and Stored Procedure Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » EJB and other Java EE Technologies
Bookmark "EJB3.0 and Stored Procedure" Watch "EJB3.0 and Stored Procedure" New topic

EJB3.0 and Stored Procedure

vignesh kumar

Joined: Feb 14, 2006
Posts: 4
What is the advantage of using Stored Procedure over EJB3.0?.We are calling Stored procedure using Native Query method.In EJB3.0 Framework already having persistent mechanism over tables like em.persist(obj),em.merge(obj),etc.I am concerned that by using native query method bypassing the persistence support provided by the EJB3 framework.So What is the different between native queries and Persistent mechanism?Can any one please elobrate.
Chandrasekhar Elindram

Joined: Jul 16, 2007
Posts: 15
Sometimes there are no choices but to use Stored procedures to leverage the benifits provided by the database vendors. In certain cases it is worth keeping the business logic in the stored procedures, on top of that they are faster(precompiled), secure and maintainable.

However, I think it may not be good idea making calls to stored procedures or writing native queries from ORM based entities. We had JDBC based DAOs with native SQLs and stored procedures calls, but not in the JPA based Entities. Not having native queries in JPA(any ORM) entities will guarantee your protability between databases.

Can someone elaborate more on this, with some practical pros & cons?

Uli Hofstoetter
Ranch Hand

Joined: Nov 24, 2006
Posts: 57
I guess it's time for the often used answer "it depends".

I had a customer with various applications based on different technologies (Powerbuilder, Java, Crystal Enterprise, ...) where some of the business logic was kept in stored procedures.

SCEA5, Certified ScrumMaster
Jerwin Louise Uy
Ranch Hand

Joined: Oct 27, 2007
Posts: 75
Native Queries will take advantage of any vendor specific implementations.

As such, it is preferred for very large queries but not for transactional functions because JPA provider is not aware of state changes and may result to inconsistent state.


Uy Jerwin Louise Vergara
Junior Developer / Research and Development at Incuventure Partners Corporation
I agree. Here's the link:
subject: EJB3.0 and Stored Procedure
It's not a secret anymore!