如何在联合表中使用Hibernate XML映射实体

时间:2012-09-06 02:56:42

标签: hibernate hibernate-mapping

我是Hibernate的初学者,在使用2个实体映射3个表时发现了一个问题。

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文件。感谢

1 个答案:

答案 0 :(得分: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方法提取数据并设置方法以输入新数据。