If I want to write a ejbSelectByName other than findByName, then the EJB-QL would be: SELECT OBJECT(m) FROM MovieSchema m WHERE m.name=?1 Then my question is how does the container figure out which component interface ( local or remote ) to be returned. For findByName, (I guess) the container can figure it out by looking at which interface the findByName method is defined. For example, if findByName is defined in local interface, then a local interface will be returned. But there is no local or remote bussiness invovled in ejbSelect method, so how does the containter know which component should be returned. Or we should never use this kind of sql in ejbSelect method.
Anybody can explain in P408 "As if by magic, the Container knows which interface view to return, local or remote, depending on whether the invocation of the query came from a home or Remote interface", why "home" or "Remote" interface?
When you create a "select", there are elements in your deployment descriptors where you do stuff, like actually saying what the EJB-QL is. There are some nodes to say which component interface will be returned (remote, local). Check out the DTD for more info.