Win a copy of Think Java: How to Think Like a Computer Scientist this week in the Java in General forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

When to use session beans...

 
Damien Joldersma
Greenhorn
Posts: 4
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Am I correct to be using a session bean to gather a collection of child EJB objects?

What I'm trying to avoid is this case where I created a simple findAll() EJB query that returns a collection of child entities. The problem is that when I get my collection and begin to walk through it, it is doing a subsequent database connection for *each* element as it renders it on screen. So, instead of doing 1 database fetch for the object and all it's children, I'm doing N trips to the database where N is the number of child EJB entity references.

Can I use a session bean to get them all at once and return them as a unit? Or am I simply using the pattern wrong and there is a better/more correct way to work with an entity and it's children?
 
Anil Sadi
Greenhorn
Posts: 23
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi Damien,

1. You can use the session facade design pattern in this context. Facade is a simple stateless session bean.
2. Keep the session bean method which collects the EJB Objects in transaction context. It saves the database calls for each method call on entity bean.
3. Use local interfaces for entity beans to save from remote calls.
4. Another good approach is use Home business methods to get the collection of Value Objects instead of EJBObject stubs from entity bean.

Hope it helps!!!

Anil S
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic