论坛首页 Java企业应用论坛

求教符合主键的问题!

浏览 3296 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2004-03-02  
员工和角色的对应表,有三个字段:STAFF_ID,ROLE_ID和ASSIGN_NO,它们都是整数型的,但是老是报错,说staffRole.hbm.xml文件有错误,请问这怎么解决,下面是XML部分:
<hibernate-mapping>
    <class  name="com..StaffRole" table="STAFF_ROLE" dynamic-update="false">
       <composite-id>
        <key-property name="staffId" type="integer" column="STAFF_ID"/>
       <key-property name="roleId" type="integer" column="ROLE_ID"/>
</composite-id>
        <property name="assignNo" type="string" column="ASSIGN_NO"/>     
    </class>
</hibernate-mapping>
   发表时间:2004-03-02  
type="integer"改为type="java.lang.Integer"
type="string"改为type="java.lang.String"试试。

另外"ASSIGN_NO,它们都是整数型的"
why type="string"?
0 请登录后投票
   发表时间:2004-03-02  
谢谢您的回复,不过还是不行.
我按照楼上的改了还不行,报的错误就是这个xml文件有错误,进而无法获得会话工厂,此外那个ASSIGN_NO字段我后来改为integer了.
0 请登录后投票
   发表时间:2004-03-02  
能否贴出完整的mapping file.好象staffId和roleId是要参照其他表的。如果这样的话,应该用
<key-many-to-one name="staff" class="com..Staff" column="staffid"/>
.....
0 请登录后投票
   发表时间:2004-03-02  
一个有三个表:STAFF/ROLE/STAFF_ROLE,分别表示员工/角色/员工-角色,下面是表STAFF_ROLE的结构:
CREATE TABLE STAFF_ROLE
(
    STAFF_ID NUMBER(8),//员工号
    ROLE_ID   NUMBER(4),//角色号
   ASSIGN_NO NUMBER(4),//人员-角色分配号
   CONSTRAINT pk_staff_role PRIMARY KEY (STAFF_ID,ROLE_ID),
   CONSTRAINT fk_staff_role_staff FOREIGN_KEY(STAFF_ID) references STAFF(STAFF_ID),
   CONSTRAINT fk_staff_role_role FOREIGN_KEY(ROLE_ID) references ROLE(ROLE_ID)
);
STAFF_ID和ROLE_ID既是主键又是外键,现在有三个对象Role/Staff/StaffRole(按理不应该设立StaffRole对象的,但是要维护分配号),下面是该对象的mapping文件:
<hibernate-mapping>
    <class  name="com.StaffRole" table="STAFF_ROLE"dynamic-update="false">       
       <composite-id >
  <key-many-to-one name="staffId" type="integer" column="STAFF_ID"/>
  <key-many-to-one name="roleId" type="integer" column="ROLE_ID"/>
       </composite-id>        
       <property name="assignNo" type="integer" column="ASSIGN_NO"/>
    </class>
</hibernate-mapping>
--------------------------------------------------------------
感谢您热情的帮助..
0 请登录后投票
   发表时间:2004-03-02  
改为
<composite-id >
<key-many-to-one name="staffId"  class="com.Staff"  column="STAFF_ID"/>
<key-many-to-one name="roleId" class="com.Role" column="ROLE_ID"/>
</composite-id>
0 请登录后投票
   发表时间:2004-03-03  
我试验了,还不行阿
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics