2012-09-06 62 views
0

我是Hibernate的初學者,在映射3個包含2個實體的表時發現問題。如何在聯合表中使用Hibernate XML映射實體

的SQL代碼:

CREATE TABLE users (
    userid int unsigned auto_increment, 
    username varchar(20) not null, 
    password varchar(64) not null, 
    primary key (userid) 
); 

CREATE TABLE roles (
    roleid int unsigned auto_increment, 
    rolename varchar(10) not null, 
    description varchar(255) not null 
    primary key (roleid) 
); 

CREATE TABLE userroles (
    userid int unsigned not null, 
    roleid int unsigned not null, 
    primary key (userid,roleid), 
    foreign key (userid) references users (userid), 
    foreign key (roleid) references roles (roleid) 
); 

當前映射XMLS

User.hbm.xml

<class name="com.model.User" table="users"> 
    <id name="userId" column="userid"> 
    <generator class="native"/> 
    </id> 
    <property name="userName" column="username"/> 
    <property name="password" column="password"/> 
</class> 

Role.hbm.xml

<class name="com.model.Role" table="roles"> 
    <id name="roleId" column="roleid"> 
    <generator class="native"/> 
    </id> 
    <property name="roleName" column="rolename"/> 
    <property name="description" column="description"/> 
</class> 

還請指教如何創建實體java文件。謝謝

+0

這真的不清楚你在這裏問什麼。問題是什麼?您是否正在努力繪製這些類型之間的關聯或不清楚HBM文件與java類文件的關係? – EdC

回答

0

我假設你有麻煩映射第三個表。您需要爲第三個表使用組合鍵。這裏有幾個鏈接你可能會發現有用: - http://docs.jboss.org/hibernate/annotations/3.5/reference/en/html_single/#d0e2177 http://www.theserverside.com/discussions/thread.tss?thread_id=22638

如果您仍然有問題的文件建立,隨意添加在評論答案,我會盡力幫助你。 要創建java文件,只需使用getter和setter創建文件,然後使用get方法提取數據並設置輸入新數據的方法。

+0

感謝您的回答。我知道複合鍵,但是我想要用第三個表來創建與前兩個表的多重關係,與'用戶'的一對一關係以及與'角色'的多對一關係。 – ericb

相關問題