Java Mailing List Archive

http://www.junlu.com/

Google
Google
Mailing List
Home
Forum Home
JBoss - Java Application Server
Tomcat - JSP/Servlet container
Struts - A MVC web framework
iText - An open source PDF Java Library
JDOM - JDOM XML Parser
J2EE - A mailing list for Java(tm) 2 Platform, Enterprise Edition
J2EE Pattern - An interest list for Sun Java Center J2EE Pattern Catalog
JSP - A mailing list about Java Server Pages specification and reference
Servlet - A mailing list for discussion about Sun Microsystem's Java Servlet API Technology
Struts & Hibernate
Subjects
JSP editor plugin for eclipse ?
org apache jasper JasperException: Unable to compile class for JSP
Tomcat: Connection reset by peer: socket write error
Cannot retrieve definition for form bean null
Struts Tiles Tutorial (free Struts training)
Where do I download Tomcat 4 0 6?
Data Access Object (DAO) pattern, example DAO 's
Where to download Tomcat v 4 1 24 from?
Tomcat 5 0 16 Requested resource not available
Oracle Connection Pooling in 3 2 2
Servlet : Session invalidate
Servlet action is currently unavailable
Tomcat/Struts Unicode Encoding/Decoding problems
Tomcat and webapplication specific java library path
Running a Simple JMS Example
Mapping in workers2 properties
org apache jasper JasperException
Cannot find message resources under key org apache struts action
   MESSAGE
problem with html:text bean throwing exception
Cannot find message resources under key org apache struts action MESSAGE
invalid direct reference problem with solution
Tool for jsp debug Try Sysdeo Eclipse Plugin
Tomcat 5 Cannot load JDBC driver class 'null ' SQL state: null
weblogic ejbc
java properties file
Jboss 3 2 3 Coyote Can 't re
Tomcat 5, Apache2 and mod jk2 integration problem
JBoss example problem new to J2EE
url string for connecting jboss to oracle
Value attribute of <html:checkbox
javax servlet ServletException: BeanUtils populate
HTTP Status 404 The requested resource is not available
5 0 18: Windows XP Pro vs Windows 2000
 
EJB relationship

EJB relationship

2004-03-25       - By Harkness, David

 Back
Reply:     1     2     3     4     5     6  

Ricardo de Souza Moura wrote:
> Maybe I hadn't gotten to do a explanation very well about my problem.
>
> If I want to add a B to A I will need to do something like
> below, won't I ?
>
> 1) A a = home.findByPrimaryKey(x);
> 2) Collection bs = a.getBs(); ==============> The problem is here
> 3) B b = home2.findByPrimaryKey(y);
> 4) bs.add(b);
>
> When the line 2 is executed, the EJBContainer load ALL Bs of
> A to the Collection bs, isn't it ? So, imagine if I have
> 1000000 of Bs. This will be a overhead unacceptable.
>
> Has anybody a suggestion ?

In cases where I have the above (1:N where N is huge), I change it to a
unidirectional N:1 coming from the other bean. In your example, you'd
have a uni-N:1 from B to A. You'd change you code to the following:

1. A a = home.findByPrimaryKey(x);
2. B b = home.findByPrimaryKey(y);
3. b.setA(a);

This way, the A's do not have a Collection of B's. Instead, each B has a
reference to an A. You can still load the B's for an A through a finder
query rather than navigating the relationship.

Having said all that, I believe that the container *could* theoretically
optimize your code above to *not* load all the B's (nor all their PKs),
but instead wait until you attempt to access the Collection's elements.
When you add a B to an A, it should be able to make the assignment in
the DB without loading the Collection. However, you'll be depending on
the container and it's more likely that no container has done this level
of optimization.

David Harkness
Sr. Software Engineer
Sony Pictures Digital Networks
(310) 482-4756

===================================================================Companion
Site: http://www.corej2eepatterns.com
J2EE BluePrints: http://java.sun.com/blueprints/corej2eepatterns
List Archive: http://archives.java.sun.com/archives/j2eepatterns-interest.html
Unsubscribing: email "signoff J2EEPATTERNS-INTEREST" to listserv@(protected)

©2008 junlu.com - Jax Systems, LLC, U.S.A.