O'Reilly logo

Enterprise JavaBeans, Third Edition by Richard Monson-Haefel

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

EJB 2.0: ejbHome( )

In EJB 2.0, CMP and BMP entity beans can declare home methods that perform operations related to the EJB component but that are not specific to an entity bean instance. A home method must have a matching implementation in the bean class with the signature ejbHome< METHOD-NAME >().

For example, the Cruise EJB might define a home method that calculates the total revenue in bookings for a specific Cruise:

public interface CruiseHomeLocal extends javax.ejb.EJBLocalHome {

    public CruiseLocal create(String name, ShipLocal ship);
    public double totalReservationRevenue(CruiseLocal cruise);

}

Every method in the home interfaces must have a corresponding ejbHome< METHOD-NAME >() in the bean class. For example, the CruiseBean class would have an ejbHomeTotalReservationRevenue() method, as shown in the following code:

public abstract class CruiseBean implements javax.ejb.EntityBean {
    public Integer ejbCreate(String name, ShipLocal ship) {
        setName(name);
    }
    ...
    public double ejbHomeTotalReservationRevenue(CruiseLocal cruise) {

        Set reservations = ejbSelectReservations(cruise);
        Iterator enum = reservations.iterator();
        double total = 0;
        while(enum.hasNext()) {
            ReservationLocal res = (ReservationLocal)enum.next();
            total += res.getAmount();
        }
        return total;

    }
 
   public abstract ejbSelectReservations(CruiseLocal cruise);
   ...
}

The ejbHome() methods execute without an identity within the instance pool. This is why ejbHomeTotalReservationRevenue() required that a CruiseLocal EJB object reference ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required