Java Hibernate:映射嵌套对象-已编辑-
例如,我有以下表格: 用户: |USERID | USERNAME | USERTYPEID| 用户类型: |USERTYPEID | USERTYPENAME| 很明显,USERTYPEID是一个外键,用户用来引用usertype。JAVA实现如下所示: 我有一个类用户和一个类用户类型,其中如下所示:Java Hibernate:映射嵌套对象-已编辑-,java,hibernate,hibernate-mapping,Java,Hibernate,Hibernate Mapping,例如,我有以下表格: 用户: |USERID | USERNAME | USERTYPEID| 用户类型: |USERTYPEID | USERTYPENAME| 很明显,USERTYPEID是一个外键,用户用来引用usertype。JAVA实现如下所示: 我有一个类用户和一个类用户类型,其中如下所示: public class User { private int id; private UserType ut; .... } public class UserTyp
public class User {
private int id;
private UserType ut;
....
}
public class UserType {
...
}
在User.hbm.xml中:
<hibernate-mapping>
<class name="com.pretech.User" table="User">
<meta attribute="class-description">
This class contains the employee detail.
</meta>
<id name="id" type="int" column="UserID">
<generator class="native"/>
</id>
</class>
</hibernate-mapping>
关于hibernate映射,我应该怎么做
编辑:
添加了有关外键内容的说明。网络中有很多示例可供您参考,您还可以查看: 例如,如果您想要一个
用户
实体和一组用户类型
,那么您可以使用一对多
关系,映射文件将是:
<class name="User">
<id name="id" column="id">
<generator class="native"/>
</id>
<set name="uts">
<key column="userId"
not-null="true"/>
<one-to-many class="UserType"/>
</set>
</class>
<class name="UserType">
<id name="id" column="id">
<generator class="native"/>
</id>
</class>
并且是文档中使用注释和列表而不是Set的另一个示例:它应该是OneToOne或OneToMany,具体取决于用户类型是单个引用还是多个引用(集合列表)。
在Google上搜索,您将获得大量基于xml和基于注释的教程。如果
user
和user\u type
都是两个不同的表,您可以使用直接的一对多映射。@Rp-它们是两个不同的表,hibernate如何知道用户表中的usertypeId是一个引用usertype表的外键?您能否解释一下hibernate如何知道用户表中的usertypeId是一个引用usertype表的外键?您能否解释一下hibernate如何知道用户表中的usertypeId是一个引用usertype表的外键用户类型表?在我的示例中,根据映射,usertype
表将具有名为userId
的外键,该外键引用User
表。行
表示外键。我认为你最好仔细阅读一下这个文档,这样你就会清楚地学习hibernate。
<class name="User">
<id name="id" column="id">
<generator class="native"/>
</id>
<set name="uts">
<key column="userId"
not-null="true"/>
<one-to-many class="UserType"/>
</set>
</class>
<class name="UserType">
<id name="id" column="id">
<generator class="native"/>
</id>
</class>