Collegeservice is a remote interface. Most remote interfaces have similar operations to add, delete, modify, and query. Therefore, a parent interface iservice is defined. To reduce unnecessary type conversions, use generics when defining iservice. When collegeservice is derived from iserive, it is bound to define the college.
Collegeservicebean is a stateless Session Bean identified by @ stateless. It implements the collegeservice interface and derives from abstractserviebean. Abstractbean provides the default implementation for adding, deleting, modifying, and querying operations.
Iservice_college and abstractservicebean_college in the figure indicate the binding to the generic type. They do not have Code and are embodied when the child type is derived.
package org.bnuitse.tms.service.security;
import java.util.List;
import org.bnuitse.tms.model.security.College;
import org.bnuitse.tms.service.IService;
public interface CollegeService extends IService<College>{
String jndiName = "tms/security/CollegeService";
College find(String name);
}
package org.bnuitse.tms.service.security.impl;
import java.util.List;
import javax.ejb.Remote;
import javax.ejb.Stateless;
import org.bnuitse.tms.model.security.College;
import org.bnuitse.tms.service.AbstractServiceBean;
import org.bnuitse.tms.service.security.CollegeService;
import org.jboss.annotation.ejb.RemoteBinding;
@Stateless
@Remote(CollegeService.class)
@RemoteBinding(jndiBinding = CollegeService.jndiName)
public class CollegeServiceBean extends AbstractServiceBean<College> implements CollegeService {
public College find(String name) {
return (College) em.createQuery("from College o where o.name = :name").setParameter("name", name).getSingleResult();
}
}