码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Hibernate 一对多关系映射


    以下为例,一个用户对就一个部门,一个部门则对应有多个用户

    1、实体类

    一方类:user

    public class User {
        private int id;
        private String name;
        private int age;
        private String pwd;
        private Department dpt;  //该属性与部门建立关系

    .............set、get方法略

    }

    多方:Department

    public class Department {
        private int id;
        private String name;
        private Set users = new HashSet();  //该属性与用户建立关系

    .............set、get方法略

    }

    2、映射配置文件

    User.hbm.xml

    1. <hibernate-mapping>
    2.     <class name="com.restfullDemo.model.User" table="t_user">
    3.         <id name="id" type="int">
    4.             <column name="id" />
    5.             <generator class="native" />
    6.         </id>
    7.         <property name="name" type="java.lang.String">
    8.             <column name="name" />
    9.         </property>
    10.         <property name="age" type="int">
    11.             <column name="age" />
    12.         </property>
    13.         <property name="pwd" type="java.lang.String">
    14.             <column name="pwd" />
    15.         </property>
    16.         <many-to-one name="dpt" class="com.restfullDemo.model.Department" fetch="join" lazy="false">
    17.             <column name="dpt_id" />
    18.         </many-to-one>
    19.     </class>

    注意:当使用 hql语句“from User”进行查询,并将结果转成List时,需要将 lazy="false"即为即时加载,默认为懒加载,则在转换时找不到Departmet的数据,会报类型转换错误。

    Department.hbm.xml

    1. <hibernate-mapping>
    2. <class name="com.restfullDemo.model.Department" table="t_department">
    3. <id name="id" type="int">
    4. <column name="id" />
    5. <generator class="native" />
    6. </id>
    7. <property name="name" type="java.lang.String">
    8. <column name="NAME" />
    9. </property>
    10. <set name="users" table="user" inverse="false" lazy="false">
    11. <key>
    12. <column name="id" />
    13. </key>
    14. <one-to-many class="com.restfullDemo.model.User" />
    15. </set>
    16. </class>
    17. </hibernate-mapping>

  • 相关阅读:
    AndroidStudio - Logcat显示乱码,都是编码格式惹得祸
    【上传vip专享资源,瓜分奖金池】第一期获奖名单
    【HCIE】03.BGP高级特性
    流行的前端开源报表工具有哪些?适合在企业级应用的
    盘点十个让工作效率倍增且有趣的 Python工具包
    Bean的生命周期
    VS编译器常见的错误
    Git实操学习笔记(跟着步骤来,命令行就会了)
    【网络篇】第十四篇——HTTP协议(一)(附带电视剧李浔同款爱心+端口号被恶意占用如何清除)
    算法通关村第六关—序列恢复二叉树(青铜)
  • 原文地址:https://blog.csdn.net/jingde528/article/details/126722241
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号