日期:2014-05-18  浏览次数:20656 次

hibernate的hbm问题
下面是myeclipse生成的hbm
<hibernate-mapping>
        <class   name= "org.xm.hibernate.testhibernate.Combo "   table= "combo "   catalog= "dinner_at_nyu ">
                <composite-id   name= "id "   class= "org.xm.hibernate.testhibernate.ComboId ">
                        <key-property   name= "resturantid "   type= "integer ">
                                <column   name= "resturantid "   />
                        </key-property>
                        <key-property   name= "comboid "   type= "integer ">
                                <column   name= "comboid "   />
                        </key-property>
                </composite-id>
                <property   name= "deshid "   type= "integer ">
                        <column   name= "deshid "   />
                </property>
...............
...............
但是在编译的时候报错说org.xm.hibernate.testhibernate.ComboId找不到
是怎么会事
我在别的地方看到的例子里面的hbm用非常简单的 <id> 而不是 <composite-id>
所以我就不知道使版本的问题吗,为什么自动生成的东西还不好用呢?

------解决方案--------------------
检查ComboId.java,应该是没有这个文件。
看hbm应该是数据表中有两个字段组合做的主键,所以需要ComboId.java定义主键的对应关系。
------解决方案--------------------
因为你的表是复合主键,所以hibernate需要一个类来作为主键,但是这个主键类没有找到