这个其实非常简单。假设有topic 和 subscriber两个实体类,不考虑关联关系,则连个类的代码如下:

/**
* Created by csonezp on 2017/8/31.
*/
@Entity
@Table
public class Topic implements Serializable{ private static final long serialVersionUID = -7752115605498533357L; @Id
@GeneratedValue
private Integer id; private String name; }
/**
* Created by csonezp on 2017/8/31.
*/
@Table
@Entity
public class Subscriber implements Serializable {
private static final long serialVersionUID = 5105575565495750284L;
@Id
@GeneratedValue
private Integer id; private String email;
}

非常简单的两个类。

现在要做一个onetomany关联,先来个最简单的,这时候topic代码如下:

@Entity
@Table
public class Topic implements Serializable{ private static final long serialVersionUID = -7752115605498533357L; @Id
@GeneratedValue
private Integer id; private String name; @OneToMany(cascade = {CascadeType.ALL},fetch=FetchType.EAGER,orphanRemoval=true)
List<Subscriber> subscribers; }

在topic类中添加红色的部分即可。cascade = {CascadeType.ALL} 是用来设置级联操作的,设置ALL就是所有Topic的操作都会同时更新Subscriber;fetch=FetchType.EAGER就是关闭lazy查询,拿到topic对象的时候就已经把subscriber都查出来了;orphanRemoval=true意思是在topic里移除subscriber时将subscriber记录也删除,而不是只指删除关联关系。

这里是建立关联表的形式做的onetomany映射,还可以用添加关联字段的方式。

@Entity
@Table
public class Topic implements Serializable{ private static final long serialVersionUID = -7752115605498533357L; @Id
@GeneratedValue
private Integer id; private String name; @OneToMany(cascade = {CascadeType.ALL},fetch=FetchType.EAGER,orphanRemoval=true)
@JoinColumn(name = "topic_id")
List<Subscriber> subscribers; }

加红色的这一行代码,就不会生成中间表,而是在subscriber表中加入一个topic_id字段来做关联了。

Spring Data Jpa(Hibernate) OneToMany的更多相关文章

  1. spring data jpa hibernate jpa 三者之间的关系

    JPA规范与ORM框架之间的关系是怎样的呢? JPA规范本质上就是一种ORM规范,注意不是ORM框架——因为JPA并未提供ORM实现,它只是制订了一些规范,提供了一些编程的API接口,但具体实现则由服 ...

  2. Spring Boot 2.x 之 Spring Data JPA, Hibernate 5

    1. Spring Boot常用配置项 基于Spring Boot 2.0.6.RELEASE 1.1 配置属性类 spring.jpa前缀的相关配置项定义在JpaProperties类中, 1.2 ...

  3. Spring data jpa hibernate:查询异常java.sql.SQLException: Column '列名' not found

    使用spring boot,jap,hibernate不小心的错误: java.sql.SQLException: Column '列名' not found: 这句话的意思是:找不到此列 为什么会出 ...

  4. Spring Data JPA Hibernate @QueryHints

    另一个实例: http://leobluewing.iteye.com/blog/2032396 : 本文内容来源:https://blog.csdn.net/gavinchen1985/articl ...

  5. maven springmvc spring data jpa hibernate sqlserver demo

    搭建费了半天费,各种报错,缺少各种jar包,不兼容等,给那些没弄过的一个参考. 点击我下载

  6. 转:spring data jpa、 hibernate、 jpa 三者之间的关系

    原文链接:spring data jpa. hibernate. jpa 三者之间的关系 spring data jpa hibernate jpa 三者之间的关系 JPA规范与ORM框架之间的关系是 ...

  7. Spring Data JPA Tutorial Part Nine: Conclusions(未翻译)

    This is the ninth and the last part of my Spring Data JPA tutorial. Now it is time to take a look of ...

  8. Spring Data JPA 和MyBatis比较

    现在Dao持久层的解决方案中,大部分是采用Spring Data JPA或MyBatis解决方案,并且传统企业多用前者,互联网企业多用后者. Spring Data JPA 是Spring Data ...

  9. javaweb各种框架组合案例(六):springboot+spring data jpa(hibernate)+restful

    一.介绍 1.springboot是spring项目的总结+整合 当我们搭smm,ssh,ssjdbc等组合框架时,各种配置不胜其烦,不仅是配置问题,在添加各种依赖时也是让人头疼,关键有些jar包之间 ...

随机推荐

  1. redhat设置开机自动连接网络

    一.设置开机自动连接网络1.用root账号登录2.打开etcsysconfignetwork-scrpts目录3.vi ifcfg-eth04.将ONBOOT改为yes 二.没有图形界面如何连接网络1 ...

  2. Ambari2.5.3卸载smartsense

    第一步,确定SmartSence服务均已关闭 curl -u admin:$PASSWORD -i -H 'X-Requested-By: ambari' -X PUT -d '{"Requ ...

  3. Selenium自动化初级/中级网络授课班招生

    近期学习selenium和appium的测试人员越来越多,应广大刚接触UI自动化以及对selenium想要更深入了解的测试人员的要求,特请一位资深测试架构师为我们开课讲解selenium,以及如何设计 ...

  4. iOS开发 MVVM+RAC 的使用

    好长一段时间没有敲简书了! 主要是因为一直在跑面试. 终于还是在上海入职了! 由于项目原因最终还是入了MVVM+RAC的坑 下面是正题. Demo效果 使用MVVM+RAC请求网络数据 Reactiv ...

  5. 小白也能看懂的插件化DroidPlugin原理(三)-- 如何拦截startActivity方法

    前言:在前两篇文章中分别介绍了动态代理.反射机制和Hook机制,如果对这些还不太了解的童鞋建议先去参考一下前两篇文章.经过了前面两篇文章的铺垫,终于可以玩点真刀实弹的了,本篇将会通过 Hook 掉 s ...

  6. Redola.Rpc 集成 Consul 服务发现

    Redola.Rpc 解决了什么问题? Redola.Rpc 是一个使用 C# 开发的 RPC 框架,代码开源在 GitHub 上.目前版本仅支持 .NET Framework 4.6 以上版本,未来 ...

  7. 显示引擎innodb状态详解

    很多人让我来阐述一下  SHOW INNODB STATUS 的输出信息,了解SHOW INNODB STATUS都输出了几个什么信息,并且我们能够这些信息中获取什么资讯,得以提高MySQL性能. 首 ...

  8. js获取url,截取url参数,截取url后文件名

    获取当前: var url = window.location.href; 百度为例: var url=window.location.href; console.info(url); http:// ...

  9. 将app接口服务器改为dotnet core承载

    昨天我的一个 app 的接口服务器挂掉了,国外的小鸡意外的翻车,连同程序和数据一起,猝不及防.我的服务端程序是 asp.net mvc ,小鸡是 256 M 的内存跑不了 windows 系统,装的 ...

  10. U盘安装Fedora 24时出现的几个问题及解决办法

    电脑中原有Win10 1. /dev/disk/by-label/Fedora-WS-LiveCD - does not exist 用UltraISO来制作启动盘后,会把U盘盘符改为Fedora-W ...