• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Question about ejbFind

 
alzamabar
Ranch Hand
Posts: 379
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi, from specs 10.7.3 there should be an ejbFind<METHOD> for each find<METHOD> in the bean's home interface. Am I right by supposing that all the ejbFind<METHOD> methods will be only in the Deployment Descriptor for CMP entity beans?
 
Keerthi P
Ranch Hand
Posts: 203
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Yes. We do not implement ejbFind<Method>s in a CMP entity bean (Not even empty methods!).
 
Adrian Enns
Ranch Hand
Posts: 48
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
You are correct in that the find methods are defined only in the deployment descriptor. I have an example below:

*******************************************
HOME INTERFACE:

package demo.coolservlets.card;

import javax.ejb.*;
import java.rmi.RemoteException;
import java.util.Collection;
import java.util.Date;

public interface PostcardHome extends EJBHome {

public Postcard create() throws CreateException, RemoteException;
public Postcard create(String toEmail, String fromEmail) throws CreateException, RemoteException;

public Postcard findByPrimaryKey(String primarykey)
throws FinderException, RemoteException;

public Collection findExpiredPostcards(Date extime)
throws FinderException, RemoteException;

public Collection findPostcardsByToEmail(String aToEmail) throws FinderException, RemoteException;
}

*******************************
DEPLOYMENT DESCRIPTOR:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd">
<ejb-jar>
<enterprise-beans>
<entity>
<ejb-name>PostcardHome</ejb-name>
<home>demo.coolservlets.card.PostcardHome</home>
<remote>demo.coolservlets.card.Postcard</remote>
<ejb-class>demo.coolservlets.card.PostcardBean</ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class>java.lang.String</prim-key-class>
<reentrant>False</reentrant>
<abstract-schema-name>PostcardHome</abstract-schema-name>
<cmp-field>
<field-name>toName</field-name>
</cmp-field>
<cmp-field>
<field-name>imageName</field-name>
</cmp-field>
<cmp-field>
<field-name>fromEmail</field-name>
</cmp-field>
<cmp-field>
<field-name>fromName</field-name>
</cmp-field>
<cmp-field>
<field-name>message</field-name>
</cmp-field>
<cmp-field>
<field-name>creationDate</field-name>
</cmp-field>
<cmp-field>
<field-name>toEmail</field-name>
</cmp-field>
<cmp-field>
<field-name>title</field-name>
</cmp-field>
<cmp-field>
<field-name>key</field-name>
</cmp-field>
<primkey-field>key</primkey-field>
<query>
<query-method>
<method-name>findExpiredPostcards</method-name>
<method-params>
<method-param>java.util.Date</method-param>
</method-params>
</query-method>
<ejb-ql>SELECT DISTINCT OBJECT(o) FROM PostcardHome AS o WHERE (?1 > o.creationDate)</ejb-ql>
</query>
<query>
<query-method>
<method-name>findPostcardsByToEmail</method-name>
<method-params>
<method-param>java.lang.String</method-param>
</method-params>
</query-method>
<ejb-ql>SELECT OBJECT(o) FROM PostcardHome AS o WHERE (?1 = o.toEmail)</ejb-ql>
</query>
</entity>
</enterprise-beans>
<assembly-descriptor>
<container-transaction>
<method>
<ejb-name>PostcardHome</ejb-name>
<method-intf>Remote</method-intf>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
</assembly-descriptor>
</ejb-jar>
 
alzamabar
Ranch Hand
Posts: 379
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thank you
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic