我已经在eclipse中安装了hibernate tools,当我试着编写一个最简单的测试程序的时候,遇到了一个奇怪的问题
我先建了一个java项目,接着是配置文件hibernate.cfg.xml,接着是控制台的配置,最后一步:关于Hibernate Code Generation,理论上应该生成对应的java对象和映射文件(我在这个Hibernate Code Generation的击Exporters选项卡中选择了Domain code(.java) 和Hibernate XML Mappings(.hbm.xml),我的JDK是1.6所以没有配置Refresh和Common)
我的数据库表名为USER,但是自动生成了User和UserId这两个类,前者就是一个只有id属性的javabean,后者含有除id以外的其他属性的javabean(构造函数+get\set方法),一个映射文件,
我的问题是为什么不是一个User类(含有对应表中所有属性),而现在分为两个类这样的类,我在做测试类的时候一旦去实例化UserId,传值后就会出现错误。
我试着自己写一个User类和映射文件,对User类实例化,通过测试却一切正常。
难道hibernate tools 有毛病,可以直接生成POJO它要去分成两个类?
------解决方案--------------------
hibernate默认设置为composite-id
当使用myeclipse自动生成composite-id 的时候,就会先生成一个 id类
在user表中增加一个代理主键,设置为自动增长就可以了
------解决方案--------------------
hibernate tools生成的PO类是必须有个Id的,如果没有会生成另一个ID类作为ID。
ID类型推荐为Long 你在表中建个Id呗