Dear Neil, Forgive me if I oversimplify, but how about just writing a stateless Session Bean, which would read the data from the db and pack it into a collection of value objects? I think I read an IBM J2EE guideline somewhere that said that if you think you'll ever need to retrieve more then 5-10 business objects at once, the process becomes so inefficient (for reasons I won't go into) as to make it impractical. I assume your expanded tree retrieves >10 Entity EJBs. One way to do it then would be w/o Entity beans at all, just session bean retrieving a >10 value objects.
If you think you do still need Entity EJBs, the "Entity EJB Inherits Value Object" pattern would be useful. If you need just 1 or 2 Entities, go ahead and call them up individually, when the data comes back, it would be in the form of a VO superclass. However, if you need a whole bunch of objects at once, call you session bean and retrieve the data and pack them into Value Objects instead, w/o the E-EJBs. I hope that helps, Greg -----Original Message----- From: Neil Stevens [mailto:[EMAIL PROTECTED]] Sent: Thursday, May 09, 2002 6:19 AM To: JDJList Subject: [jdjlist] Business Layer Instantiation Dear List, I am designing a business layer that will be accessed by a number of applications. By default I expect the model to instantiate objects on demand, accessing the data layer as required. In Application A, a GUI tree is used to show part of the model. It starts off collapsed, and the user opens up the branches that interest them. The first time a node is expanded, it leads to a data access. If a node isn't expanded, then the corresponding Business Object is not fully constructed. This is fine. In Application B, a similar tree is used, but this time it starts of fully expanded. There are several hundred leafs. This gives rise to dozens of data accesses, which will be inefficient. I could write some code to do a large query and construct the necessary Business Objects in one go. But how does the Business Model know when to use which style of construction? Should I pollute the Business Layer API with data access specific parameters? I assume this type of problem will keep recurring, so I need a flexible/extendable approach. Any ideas ? Neil To change your membership options, refer to: http://www.sys-con.com/java/list.cfm To change your membership options, refer to: http://www.sys-con.com/java/list.cfm
