CMR & remote interface blues

Janne <[email protected]>
Newsgroups gmane.comp.java.sun.ejb.general
Message-ID <LISTSERV%[email protected]>
I have just spent a while scratching my head on CMR & Local interfaces,
initially not knowing that CMR methods should use local interfaces. Partly
because WL6.1 works without complaining with CMR & remote interfaces as long
as they are 1:1....and partly because I'm sure that a previous version of
mastering EJB II (downloadable at theserverside) did not mention local
interfaces with CMR at all!

Now, I downloaded the PDF again and checked that there is a info box about
the subject (either a new one, or one that I missed previously). It goes to
explain:

"A common theme throughout this book has been to always use local interfaces
when possible. This is especially true for entity beans, and has a big
impact on relationships.

Specifically, if you decide for some bizarre reason to use remote interfaces
with entity beans, then

- You must not expose get/set methods for relationship fields to remote
clients. Doing so creates problems because, for example, the client does not
have access to the container-implemented collection interface.

- Your entity bean can only have unidirectional relationships with other
entity beans. The lack of local interface prevents other entity beans from
having relationship with you. "

OK, the information may be there, but why not state it as clearly as
O'reilly's book for example:

"It is important to understand that although entity beans may have both
local and remote interfaces, a CMR field can use only the enity bean's local
interface when persisting a relationship."

Also, the fact that the examples contain methods that at least look exactly
like they would operate on remote interfaces

public abstract Order getOrder();
public abstract void setOrder(Order order);

is bound to confuse the reader.

Just had to rant.

===========================================================================
To unsubscribe, send email to [email protected] and include in the body
of the message "signoff EJB-INTEREST".  For general help, send email to
[email protected] and include in the body of the message "help".
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.