Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Hibernate:映射嵌套对象-已编辑-_Java_Hibernate_Hibernate Mapping - Fatal编程技术网

Java Hibernate:映射嵌套对象-已编辑-

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

例如,我有以下表格:

用户:

|USERID | USERNAME | USERTYPEID|

用户类型:

|USERTYPEID | USERTYPENAME|

很明显,USERTYPEID是一个外键,用户用来引用usertype。JAVA实现如下所示:

我有一个类用户和一个类用户类型,其中如下所示:

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>