小弟最近在做一个web项目,数据库时sql sever2005  我用myEclipse自带的hibernate工具 从表生成实体类的时候,为什么一个表生成了两个实体类?那我hql查询的时候应该是查哪个对象呢?例如一个 user表 生成了userID  还有一个user的实体类,userID的实体类 就包含了user表的一些基本信息,可是另外一个实体类包含的是 user表的主键 和 外键的对象,这是怎么回事啊?

解决方案 »

  1.   

    大家可能没明白我的意思,一前作都不会出现这样的问题 我的其中一张表逆向生成的时候
    SystemRankingInfo
    SystemRankingInfoId生成了这样两个类其中SystemRankingInfo类中包含两个属性
             private SystemRankingInfoId id;
    private SystemUsers systemUsers;
    另外一个SystemRankingInfoId这个类中包含了
             private Integer id;
    private String year;
    private String month;
    private Integer target;
    private Double finished;
    private Double finishrate;
    private Integer groups;
    private SystemUsers systemUsers;
    private Short isGroupedByDept;
    也就是数据库中对应的一些值,怎么会生成这样两个文件呢??
    另外 我的映射文件对应的是SystemRankingInfo,我将数据库中的值都list出来,list.size的值也对应了数据库中实际记录的条数~~
    可是我将list每个遍历并且getId那个对象得到SystemRankingInfoId 这个类型的时候 都报的null,
    是不是和一个数据库表生成两个pojo有关呢?怎么会生成这两个类呢??很纳闷
      

  2.   

    个人觉得最好不要用反向工程生成类,那样有时会乱,对应不起来。手动建吧,这样你可以了解到很多.hbm.xml文件里的属性,用得更熟练。你这个问题,因为自己没有遇到过,所以只能提点意见,觉得应该是配置问题,MyEclipse或SQL里的表的属性。主键外键。
      

  3.   

    恩。。 解释不清楚了 如果不建立主键的话 myeclipse会默认生成一个主键类的