Entity beans represent a data model existing in a data store. However, in some situations, you may want to present the data model as read-only and noncreatable. For example, suppose you want an application to compare passwords entered by users for validation against those stored in the database, but you don't want to allow updates to those passwords.

In a case like this, you need an entity bean that could not be created by a user and that only allows the user to look up existing instances. To accomplish this, you must create an entity bean that cannot be created by any program code whatsoever. In addition, you need a way to keep the entity bean from being removed, even with CMP beans.

public interface Password extends EJBObject {
    public boolean isValid(String passwordthrows RemoteException;    

public class PasswordBean implements EntityBean {
    public void ejbStore() {}
    public void ejbLoad() {}
    // declares data accessors:
    public abstract String getOwnerName();
    public abstract void setOwnerName(String ownerName);
    public abstract String getPassword();
    public abstract void setPassword(String password);
    // prevents data removal:
    public void ejbRemove() throws RemoveException {
        throw new RemoveException("remove is not allowed");
    public boolean isValid(String password) {
        return (this.password.equals(password));