import java.io.*;public class UserInfoPK
    implements Serializable {
  public String email;
  public String firstName;  public UserInfoPK() {
  }  public UserInfoPK(String email, String firstName) {
    this.email = email;
    this.firstName = firstName;
  }  public boolean equals(Object obj) {
    if (obj != null) {
      if (this.getClass().equals(obj.getClass())) {
        UserInfoPK that = (UserInfoPK) obj;
        return ( ( (this.email == null) && (that.email == null)) ||
                (this.email != null && this.email.equals(that.email))) &&
            ( ( (this.firstName == null) && (that.firstName == null)) ||
             (this.firstName != null && this.firstName.equals(that.firstName)));
      }
    }
    return false;
  }  public int hashCode() {
    return (email + firstName).hashCode();
  }
}package cmpql;import javax.ejb.*;
import java.util.*;public interface UserInfoHome
    extends javax.ejb.EJBLocalHome {
  public UserInfo create(String firstName, String middleName, String lastName, String email, String dept, String workPhone, String extention, String homePhone, boolean isEmployee) throws CreateException;
  public UserInfo findByPrimaryKey(UserInfoPK pk) throws FinderException;
}package cmpql;import javax.ejb.*;abstract public class UserInfoBean
    implements EntityBean {
  EntityContext entityContext;
  public UserInfoPK ejbCreate(String firstName, String middleName, String lastName, String email, String dept, String workPhone, String extention, String homePhone, boolean isEmployee) throws CreateException {    setEmail(email);
    setDept(dept);
    setWorkPhone(workPhone);
    setExtention(extention);
    setHomePhone(homePhone);
    setEmployee(isEmployee);
    setFirstName(firstName);
    setLastName(lastName);
    setMiddleName(middleName);    return null;
  }  public void ejbPostCreate(String firstName, String middleName, String lastName, String email, String dept, String workPhone, String extention, String homePhone, boolean isEmployee) throws CreateException {
    /**@todo Complete this method*/
  }  public void ejbRemove() throws RemoveException {
    /**@todo Complete this method*/
  }  public abstract void setEmail(java.lang.String email);  public abstract void setFirstName(java.lang.String firstName);  public abstract void setMiddleName(java.lang.String middleName);  public abstract void setLastName(java.lang.String lastName);  public abstract void setDept(java.lang.String dept);  public abstract void setWorkPhone(java.lang.String workPhone);  public abstract void setExtention(java.lang.String extention);  public abstract void setHomePhone(java.lang.String homePhone);  public abstract void setEmployee(boolean employee);
  public abstract void setUser(cmpql.TblUser user);  public abstract java.lang.String getEmail();  public abstract java.lang.String getFirstName();  public abstract java.lang.String getMiddleName();  public abstract java.lang.String getLastName();  public abstract java.lang.String getDept();  public abstract java.lang.String getWorkPhone();  public abstract java.lang.String getExtention();  public abstract java.lang.String getHomePhone();  public abstract boolean getEmployee();
  public abstract cmpql.TblUser getUser();  public void ejbLoad() {
    /**@todo Complete this method*/
  }  public void ejbStore() {
    /**@todo Complete this method*/
  }  public void ejbActivate() {
    /**@todo Complete this method*/
  }  public void ejbPassivate() {
    /**@todo Complete this method*/
  }  public void unsetEntityContext() {
    this.entityContext = null;
  }
  public void setEntityContext(EntityContext entityContext) {
    this.entityContext = entityContext;
  }}

解决方案 »

  1.   

    <?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>
                <display-name>UserInfo</display-name>
                <ejb-name>UserInfo</ejb-name>
                <local-home>cmpql.UserInfoHome</local-home>
                <local>cmpql.UserInfo</local>
                <ejb-class>cmpql.UserInfoBean</ejb-class>
                <persistence-type>Container</persistence-type>
                <prim-key-class>cmpql.UserInfoPK</prim-key-class>
                <reentrant>False</reentrant>
                <cmp-version>2.x</cmp-version>
                <abstract-schema-name>UserInfo</abstract-schema-name>
                <cmp-field>
                    <field-name>firstName</field-name>
                </cmp-field>
                <cmp-field>
                    <field-name>middleName</field-name>
                </cmp-field>
                <cmp-field>
                    <field-name>lastName</field-name>
                </cmp-field>
                <cmp-field>
                    <field-name>email</field-name>
                </cmp-field>
                <cmp-field>
                    <field-name>dept</field-name>
                </cmp-field>
                <cmp-field>
                    <field-name>workPhone</field-name>
                </cmp-field>
                <cmp-field>
                    <field-name>extention</field-name>
                </cmp-field>
                <cmp-field>
                    <field-name>homePhone</field-name>
                </cmp-field>
                <cmp-field>
                    <field-name>employee</field-name>
                </cmp-field>
            </entity>
        </enterprise-beans>
        <assembly-descriptor>
            <container-transaction>
                <method>
                    <ejb-name>UserInfo</ejb-name>
                    <method-name>*</method-name>
                </method>
                <trans-attribute>Required</trans-attribute>
            </container-transaction>    </assembly-descriptor>
    </ejb-jar>
      

  2.   

    CREATE TABLE UserInfo (
    firstName varchar (256) PRIMARY KEY,
    middleName varchar] (256),
    lastName varchar (256),
    email varchar (50) PRIMARY KEY,
    dept varchar (256) ,
    workPhone varchar (256) ,
    extention varchar (256),
    homePhone varchar (256) ,
    Employee bit 
    )