hibernate之关于使用连接表实现多对一关联映射

hibernate之关于使用连接表实现多对一关联映射

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

hibernate之关于使用连接表实现多对一关联映射此处内容已经被作者隐藏,请输入验证码查看内容
验证码:
请关注本站微信公众号,回复“”,获取验证码。在微信里搜索“”或者“”或者微信扫描右侧二维码都可以关注本站微信公众号。


【Hibernate】之关于使用连接表实现多对一关联映射


在我们项目使用中採用中间表最多的一般就是多对一,或者是多对多,当然一对一使用中间表也是能够的,可是这样的几率通常少之又少!所以这里重点介绍多对一和一对多的採用中间表进行关联映射!


依旧採用Group和Person来描写叙述这个逻辑!


Annotations配置

@Entity@Table(name="t_group")publicclass Group {    private Integer id;    private String name;    @Id    @GeneratedValue    public Integer getId() {       returnid;    }    publicvoid setId(Integer id) {       this.id = id;    }    @Column(name="g_name")    public String getName() {       returnname;    }    publicvoid setName(String name) {       this.name = name;    }}

@Entity
@Table(name="p_person")
publicclass Person {
    private Integer id;
    private String name;
    private Integer age;
    private Group group;
    @ManyToOne
    //以下是配置中间表的核心
    @JoinTable(name="g_p",joinColumns={@JoinColumn(name="p_id")},
           inverseJoinColumns={@JoinColumn(name="g_id")})
    public Group getGroup() {
       returngroup;
    }
    publicvoid setGroup(Group group) {
       this.group = group;
    }
    @Id
    @GeneratedValue
    public Integer getId() {
       returnid;
    }
    publicvoid setId(Integer id) {
       this.id = id;
    }
    @Column(name="p_name")
    public String getName() {
       returnname;
    }
    publicvoid setName(String name) {
       this.name = name;
    }
    @Column(name="p_age")
    public Integer getAge() {
       returnage;
    }
    publicvoid setAge(Integer age) {
       this.age = age;
    }
}


XML配置


<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/HibernateMapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="csg.hibernate.entity">
    <class name="Person" table="t_person">
       <id name="id">
           <column name="id"/>
           <generator class="native" />
       </id>
       <property name="name" />
       <property name="age" />
       <join table="t_p" optional="true">
           <key column="p_id"></key>
           <many-to-one name="group" column="g_id" class="Group" unique="true"/>
       </join>
    </class>
</hibernate-mapping>

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/HibernateMapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="csg.hibernate.entity">
    <class name="Group" table="t_group">
       <id name="id">
           <column name="id"/>
           <generator class="native" />
       </id>
       <property name="name" />
    </class>
</hibernate-mapping>

写这篇文章,我特意查询了一下网上的文章,发现大家都是採用XML配置的,所以我这里也写了Annotations配置,由于JPA中的Annotations使用起来远比XML要方便!OK?




XML配置


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/117912.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • ActiveMQ简介与安装

    1.ActiveMQ简介ActiveMQ是一种开源的,实现了JMS1.1规范的,面向消息(MOM)的中间件,为应用程序提供高效的、可扩展的、稳定的和安全的企业级消息通信。ActiveMQ使用Apa

    2021年12月28日
  • APP抓包——Fiddler工具

    APP抓包——Fiddler工具Fiddler简介:Fiddler是强大且好用的Web调试工具之一,它能记录客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据。Fiddler的运行机制其实就是本机上监听8888端口的http代理。对于PC端Fiddler启动的时候默认IE的代理设为了127.0.0.1:8888,而其他浏览器是需要手动设置的,所以如果需要监听PC端Chrome网络请求,…

  • 1521端口 mysql_Linux开放1521端口允许网络连接Oracle Listener

    1521端口 mysql_Linux开放1521端口允许网络连接Oracle Listener症状:1.TCP/IP连接是通的。可以用ping命令测试。2.服务器上OracleListener已经启动。lsnrctlstatus查看listener状态lsnrctlstart启动Oraclelistener3.客户端得到的错误信息通常是:ORA-12170:TNS:连接超时这时,我们基本可以肯定是服务器没有开放1521端口(假设你用默认设置)解决…

  • 各大巨头电商提供的IP库API接口-新浪、搜狐、阿里

    各大巨头电商提供的IP库API接口-新浪、搜狐、阿里

  • 单调队列java_单调队列&单调栈

    单调队列java_单调队列&单调栈单调队列例题:Poj2823给定一个数列,从左至右输出每个长度为m的数列段内的最小数和最大数。数列长度:N<=106,m<=N对于单调队列,我们这样子来定义:1、维护区间最值2、去除冗杂状态如上题,区间中的两个元素a[i],a[j](假设现在再求最大值)若j>i且a[j]>=a[i],a[j]比a[i]还大而且还在后面(目前a[j]留在队列肯定比a[i]有用,因为你…

  • 轩辕剑五的乱码问题解决

    轩辕剑五的乱码问题解决轩辕剑5乱码解决方法2007年02月11日星期日10:32(轩辕剑五乱码、轩辕剑乱码转换、轩辕剑5化繁为简)轩辕剑五的乱码问题相当让人头疼,我用过win2k/xp/Vista区域模拟和化繁

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号