一个的话你的那个字段就是主键类啦!!!
两个以上才会显示的定义一个主键类 ------------------------------------------------------
           我们还年轻牛奶会有的奶牛也会有的 
             可天天在 csdn 混这些会有吗 ??

解决方案 »

  1.   

    一个当然不用生成了,那个字段就是主键类了!!! ------------------------------------------------------
               我们还年轻牛奶会有的奶牛也会有的 
                 可天天在 csdn 混这些会有吗 ??
      

  2.   

    那为什么精通EJB第二版上一个也会有个主键类?
      

  3.   

    它愿意建就建呗.
    你不愿意建就不建,..
    随你自己了... 谁又没有逼你:)反正我所参与的项目,从没见过给一个字段建立主键类.多此一举 ------------------------------------------------------
               我们还年轻牛奶会有的奶牛也会有的 
                 可天天在 csdn 混这些会有吗 ??
      

  4.   

    EJB2.0规范为使用CMP的bean 提供键类提供了两种不同的方法:
    1)一个用于一般情况,适用于带任意数量字段的主键,你需要用一个主键类来表示.
    2)另一个是专用的,便于处理只有一个字段的主键.不用建, 主键类就在ejb-jar.xml部署文件中用包装器类代替<?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>Account</display-name>
                <ejb-name>Account</ejb-name>
                <local-home>bmp3.AccountHome</local-home>
                <local>bmp3.Account</local>
                <ejb-class>bmp3.AccountBean</ejb-class>
                <persistence-type>Bean</persistence-type>
                <prim-key-class>java.lang.Integer</prim-key-class>//主键是int型的数据
                <reentrant>False</reentrant>
            </entity>
        </enterprise-beans>
        <assembly-descriptor>
            <container-transaction>
                <method>
                    <ejb-name>Account</ejb-name>
                    <method-name>*</method-name>
                </method>
                <trans-attribute>Required</trans-attribute>
            </container-transaction>
        </assembly-descriptor>
    </ejb-jar>
      

  5.   

    可以不自己键,但要保证是对象,原始类型int等是不可以的
      

  6.   


     我觉得键值类型不一定是对象,可以是Java 基本数据类型..但是ejb-jar.xml指定类(如上  Integer类) <prim-key-class>java.lang.Integer</prim-key-class>// 一下是JBuilder8 生成代码
    表结构:
    CREATE TABLE [account] (
    [id] [int] NOT NULL ,
    [ownername] [varchar] (64) COLLATE Chinese_PRC_CI_AS NOT NULL ,
    [balance] [numeric](18, 0) NULL ,
    CONSTRAINT [PK_account] PRIMARY KEY  CLUSTERED 
    (
    [id]
    )  ON [PRIMARY] 
    ) ON [PRIMARY]
    GOpackage bmp3;import javax.ejb.*;public class AccountBean implements EntityBean {
      EntityContext entityContext;
      java.lang.Integer id;
      java.lang.String ownername;
      java.math.BigDecimal balance;
      public java.lang.Integer ejbCreate(java.lang.Integer id) throws CreateException {
        setId(id);
        return null;
      }
      public void ejbPostCreate(java.lang.Integer id) throws CreateException {
        /**@todo Complete this method*/
      }
      public void ejbRemove() throws RemoveException {
        /**@todo Complete this method*/
      }
      public void setId(java.lang.Integer id) {
        this.id = id;
      }
      public void setOwnername(java.lang.String ownername) {
        this.ownername = ownername;
      }
      public void setBalance(java.math.BigDecimal balance) {
        this.balance = balance;
      }
      public java.lang.Integer getId() {
        return id;
      }
      public java.lang.String getOwnername() {
        return ownername;
      }
      public java.math.BigDecimal getBalance() {
        return balance;
      }
      public java.lang.Integer ejbFindByPrimaryKey(java.lang.Integer id) throws FinderException {
        /**@todo Complete this method*/
        return null;
      }
      public void ejbLoad() {
        /**@todo Complete this method*/
      }
      public void ejbStore() {
        /**@todo Complete this method*/
      }
      public void ejbActivate() {
      }
      public void ejbPassivate() {
      }
      public void unsetEntityContext() {
        this.entityContext = null;
      }
      public void setEntityContext(EntityContext entityContext) {
        this.entityContext = entityContext;
      }
    }