这是jbuilder 自动生成的一个PK类
大家有没有注意到上边的数据成员  public int insurerId;
数据成员声明为public 型,很少见。我将它改为private ,deploy出错,改回来就好了。谁能解释一下

解决方案 »

  1.   

    肯定了,你要知道你的PK也是在CMP中存在成Persistance.为了考虑到以后的数据跨度,一旦你是private,也就意味着你的这个只能在本类极其子类中引用,其实问题的关键还在于cmp的容器性
      

  2.   

    to: yeshucheng(叶澍成) 
    又看到你了,呵呵.上次就是你帮的忙,谢了请大家继续讨论
      

  3.   

    如果cmp的规范是让你必须写setXXX()getXXX
    那么应该也可以用private
      

  4.   

    终于在《the j2ee tutorial》上边找到了答案:
    引用原文:
    对于容器管理持久性类,其主键类必须满足如下要求:
    1 访问控制修饰符必须为public 
    2 所有的域必须声明为public
    3 主键类中的域是bean持久性的子集
    4 提供public默认构造方法
    5 需要实例化hashCode()和equal(Object other)这两个方法
    6 可序列化
      

  5.   

    在书上一般介绍的PK类的时候,都会提到这个问题,主要考虑的以后的跨度问题,所以声明为最开放的public