jpa的单项一对多,双向一对多

FPGA开发者必看:如何用SATA3.0主机控制器IP实现高速存储扩展(附Xilinx实测数据) 本文为FPGA开发者提供了基于SATA3.0主机控制器IP核的高速存储方案设计与优化指南。通过详细解析IP核架构、Xilinx FPGA平台集成实战及性能优化技巧,帮助开发者实现接近理论极限的540MB/s数据传输速度。文章还包含常见问题解决方案和高级应用场景拓展,是硬件工程师提升存储性能的必备参考。 阅读详情

jpa的底层依然是Hibernate框架,所以他很多配置和hibernate很像

第一步:首先创建两个model分别为order和customer

创建order的model

package org.peter.model;

import javax.persistence.*;

/**
 * Created by Lenovo on 2017/7/27.
 */
@Entity(name = "t_order")
public class Order {
    private Long id;
    private String pname;
//    private Customer customer;

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getPname() {
        return pname;
    }

    public void setPname(String pname) {
        this.pname = pname;
    }

//    @JoinColumn(name = "customer_id")//设置外键
//    @ManyToOne//设置多对一
//    public Customer getCustomer() {
//        return customer;
//    }
//
//    public void setCustomer(Customer customer) {
//        this.customer = customer;
//    }
}
创建customer的model

package org.peter.model;

import javax.persistence.*;
import java.util.HashSet;
import java.util.Set;

/**
 * Created by Lenovo on 2017/7/27.
 */
@Entity(name = "customer")
public class Customer {
    private Long id;
    private String cname;
    private String address;
    private Set<Order> orders = new HashSet<>();

    @OneToMany(cascade = {CascadeType.ALL},fetch = FetchType.EAGER)//一对多,
    // fetch = FetchType.EAGER 这个是否开启延迟加载
    @JoinColumn(name = "customer_id")//添加主键
    public Set<Order> getOrders() {
        return orders;
    }

    public void setOrders(Set<Order> orders) {
        this.orders = orders;
    }
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getCname() {
        return cname;
    }

    public void setCname(String cname) {
        this.cname = cname;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }
}
第二步:创建一个main的类做测试

package org.peter;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.peter.model.Customer;
import org.peter.model.Order;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.Persistence;
import java.util.Set;

/**
 * Created by Lenovo on 2017/7/27.
 */
public class main {
    EntityManagerFactory factory;
    EntityManager manager;
    EntityTransaction tx;
    @Before
    public void before(){
        //1,创建EntityManagerFactory
         factory =  Persistence.createEntityManagerFactory("NewPersistenceUnit");
        //2,创建ManagerFactory
         manager = factory.createEntityManager();
        //3,开启事物
        tx = manager.getTransaction();
        tx.begin();
    }
    @After
    public void after(){
        //5,提交事物
        tx.commit();
        //6,关闭资源
        manager.close();
        factory.close();
    }
    @Test
    public void add1(){
        Order o1 = new Order();
        o1.setPname("蓝狐");
        Order o2 = new Order();
        o2.setPname("黄瓜");
        Order o3 = new Order();
        o3.setPname("吃饭");
        Customer customer = new Customer();
        customer.setAddress("深圳");
        customer.setCname("张艺三");
        customer.getOrders().add(o1);
        customer.getOrders().add(o2);
        customer.getOrders().add(o3);
        manager.persist(customer);
    }

    @Test
    //默认就开启了延迟加载
    public void select(){
        Customer customer = manager.find(Customer.class, 1l);
        Set<Order> orders = customer.getOrders();
        System.out.println(orders);
        System.out.println(customer);
    }

    @Test
     public void delete(){
         Customer customer = manager.find(Customer.class, 1l);
         manager.remove(customer);
     }
}

注意:我们在执行delete方法的时候一定要在customer的类配置

@OneToMany(cascade = {CascadeType.ALL}
不然就删除不掉和他相关另一张表里的数据


jpa双向的多对一就是即将order的model将注释的地方给打开就可以l

注意:两边设置的主键一定要一样

还在纠结二层交换机和三层交换机的区别?这篇文章帮你讲明白! 你好,这里是网络技术联盟站,我是瑞哥。公众号后台有小伙伴想要写一篇文章具体介绍一下二层交换机和三层交换机,此类的文章,之前写过几篇,今天瑞哥再写一篇,希望对大家有所帮助! 阅读详情

相关推荐

Verilog-asm小练习—PLL建模

Verilog- ams是Verilog标准的模拟混合信号语言,以下是对PLL建模的一种思路参考

weixin_44700185的博客 1016

JPA中的一对多

2.1 表之间关系的划分 数据库中多表之间存在着三种关系,如图所示。 从图可以看出,系统设计的三种实体关系分别为:多对多、一对多和一对一关系。注意:一对多关系可以看为两种: 即一对多,多对一。所以说四种更精确。 明确: 我们今天只涉及实际开发中常用的关联关系,一对多和多对多。而一对一的情况,在实际开发中几乎不用。 2.2 在JPA框架中表关系的分析步骤 在实际开发中,我们数据库的表难免会有相互...

qq_42836176的博客 3501

STM32F407与AD7766实战:如何用SPI+DMA实现高速ADC数据采集(附完整代码)

本文详细介绍了如何利用STM32F407的SPI接口与DMA控制器,高效稳定地驱动24位高精度ADC芯片AD7766,实现高速连续数据采集。通过对比传统中断方式的瓶颈,阐述了SPI+DMA方案如何大幅降低CPU负载,并提供了从硬件设计、CubeMX配置到核心驱动代码的完整实战指南,帮助工程师解决高速ADC数据采集中的性能难题。

weixin_29281941的博客 188

Jpa之间实体关系,一对多,多对一,多对多,相关注解说明

JPA之间实体关系    JPA在生成数据表的时候,实体之间的主要关系主要有三种,分别是: @ManyToOne (多对一) @OneToMany (一对多关系) @OneToOne (一对一关系) @ManyToMany (多对多关系) 其中一对多是比较常用的。下面对一对多进行演示说明。 实体与实体之间一对多关系配置   有两张表,分别是banner和banner_item,两者之间的关系是一对多。 Banner.java(一对多中,“一”的

weixin_44793245的博客 1566

Cadence Allegro PCB文件对比实战:3分钟搞定两份设计差异(附颜色标注技巧)

本文详细介绍了如何高效使用Cadence Allegro的Design Compare功能进行PCB文件差异对比。通过实战工作流,可在3分钟内精准定位并理解两份设计在布局、布线、元件等方面的关键差异,并分享了自定义颜色标注技巧,帮助工程师快速聚焦重要修改,提升设计评审与团队协作效率。

weixin_29248653的博客 379

uni-app项目中引入Vant UI组件库(完美避坑!!!)纯净版

uni-app项目中引入Vant UI组件库(纯净版--无uni-ui)

Wzmlzrr的博客 3万+

Spring Boot JPA级联查询【一对多、多对一】

一、数据准备 在管理系统中,角色和用户是典型一对多关系,一个角色可以分配给多个用户,一个用户对应一个角色。准备两个实体类TestRole、TestUser类,并在数据库建好对应表结构z_test_roles、z_test_users两张表。 @Entity @Getter @Setter @Table(name = "z_test_roles") public class TestRole implements Serializable { @Id @Column(na...

u014713873的博客 9307

zabbix深度监控之邮件告警、微信群和微信告警

本文详细介绍了Zabbix监控系统实现邮件告警和微信告警的配置方法。邮件告警部分包含QQ和163邮箱的SMTP服务器配置、消息模板设置、告警流程三步骤(媒介配置、触发器动作、用户设置)。微信告警分为两种方式:企业微信群机器人告警(通过webhook实现)和企业微信应用告警(需创建应用并获取API参数)。两种告警方式都提供了完整的配置流程,包括脚本编写、权限设置、消息模板定制等关键步骤,并特别说明了如何使个人微信接收企业微信告警消息。文章还对比了SMTP、POP3、IMAP三种邮件协议的差异及适用场景。

提供C#相关开发 、云计算、运维测试、网络安全相关技术分享与服务,有意向可联系。 816

Spring Data JPA 之 一对一,一对多,多对多 关系映射

&amp;amp;amp;amp;amp;amp;nbsp; 一、@OneToOne关系映射 JPA使用@OneToOne来标注一对一的关系。 实体 People :用户。 实体 Address:家庭住址。 People 和 Address 是一对一的关系。 这里用两种方式描述JPA的一对一关系。 一种是通过外键的方式(一个实体通过外键关联到另一个实体的主键); 另外一种...

我飞故我在的专栏 8万+

Autosar配置——导入DBC后配置SecOC同步报文和同步请求报文

在Autosar中,安全性是一个重要的考虑因素,而SecOC(Secure On-Board Communication)是一种用于保护通信数据完整性和安全性的安全机制。在上述示例中,我们配置了同步报文和同步请求报文的属性。接下来,我们需要在Autosar中配置同步报文和同步请求报文。同步报文用于在通信双方之间同步SecOC状态,而同步请求报文用于请求SecOC的状态信息。通过以上配置,我们成功地导入了DBC文件,并在Autosar系统中配置了SecOC同步报文和同步请求报文。希望以上信息对您有所帮助!

CyberSphinx的博客 649

RK3568-适配phy芯片ip101gri

复位时间查阅数据手册。

Paper_Love的博客 2643

一篇文章带你搞定 SpringDataJpa 中的一对多的多表设计

文章目录一、表之间关系的划分二、在JPA框架中表关系的分析步骤三、JPA 中的一对多1. 表关系建立2. 实体类关系建立以及映射配置3. 测试一对多的关系4. 一的一方放弃维护权 一、表之间关系的划分 数据库中多表之间存在着三种关系,如图所示: 从图可以看出,系统设计的三种实体关系分别为:多对多、一对多和一对一关系。 注意:一对多关系可以看为两种: 即一对多,多对一。所以说四种更精确。 明确: 我们今天只涉及实际开发中常用的关联关系,一对多和多对多。而一对一的情况,在实际开发中几乎不用。 二、在JPA框

南淮北安的博客 3634

在RV1126上实现人脸识别----MobileFaceNet转成rknn模型

目录 1.模型下载 2 转成rknn模型并推理 3 查看网络模型 1.模型下载 首先下载MobileFaceNet的模型,github下载地址为:https://github.com/sirius-ai/MobileFaceNet_TF/tree/master/arch/pretrained_model/ 2 转成rknn模型并推理 import numpy as np import cv2 from rknn.api import RKNN if __name__ == '__..

C/C++、嵌入式开发、深度学习算法、模型部署与推理优化 3526

Spring JPA的多表查询

SpringBoot JPA的多表查询 1.关系映射 单项多对一关联 我们以User和Role表为例 修改User实体类,添加Role对象 @ManyToOne注解映射多对一关联,targetEntity属性表示关联实体类型,可以省略 @JoinColumn注解映射的外键字段,如果不指定,则生成一张新表维护两个对象之间的关系 2.创建UserRepository接口 3.编写测试类即可 4.双向一对多关联 ●targetEntity属性表示关联的实体类型 ●feteh 属性表示加载策略,Fetch

lm2574866671的博客 429

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

JPA基础知识(四):映射关联关系

JPA映射关联关系 映射单项多对一的关联关系(常用) 映射单项一对多的关联关系 映射双向多对一的关联关系 映射双向一对一的关联关系 映射双向多对多的关联关系 一、单项多对一的关联关系 客户实体: Customer【一】 中没有 Order【多】 订单实体: Order【多】 中有 Customer【一】 “多” 中含有外键 测试映射关系: 【增】 建议: 保存“多对一时”,...

Xxacker的博客 374

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

单向一对多 双向一对多 单项多对多 双向多对多 单项一对一 双向一对一

1 单向的一对多(不会专门使用 ,如果要使用双向就必须学习) 1.1 配置 (掌握) 多方 @Entity@Table(name="t_product") public class Product { @Id @GeneratedValue private Long id; private String name; } 1方配置 @En...

metjoyful的博客 1035

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

JPA之JPA中的一对多双向关联

如果要搭建JPA开发环境,请从JPA第一篇博客看起。 JPA规范规定,在双向的一对多或者多对一关系中,多的一方为关系维护端,关系维护端负责外键记录的更新,关系被维护端是没有权利更新外记录。   这里以订单和订单项为例,一个订单可以有多个订单项,一个订单项只归属于某个订单。 1、新建Order类,编写代码如下 package cn.sunft.bean; import

BruceLeeNumberOne的博客 1192

jpa级联添加_JPA中的一对多双向关联与级联操作

学习Spring有两周时间了 , 个人觉得服务端主要实现的是数据关系的维护和数据结构的制定 , 以及由业务需求产生的CRUD , 只要保证对前端提供的接口稳定高效响应 , 具体的前端实现完全不关心.这个是接触后端的一个感受 , Spring boot使用了特定的方式来进行配置 ,大大简化了后端开发人员的开发工作量 ,比如JPA:用来操作实体对象,执行CRUD操作,框架在后台替我们完成所有的事情,开...

weixin_28223453的博客 2660

JPA映射双向一对多的关联关系

双向一对多关联关系 一的一方12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777...

cpongo55 287

JPA学习记录六(JPA中的一对多双向关联与级联操作)

进行学习双向的一对多关联与级联操作:

Simple 451

【jpa】映射关系:单向一对多,多对一,双向多对一,双向一对一,双向多对多(和hibernate一样)

映射关系(外键在哪,就是谁维护关联关系) 基本步骤思路: 实体类创建 大配置文件设置(实体类关联) 小配置设定,在配置文件中加入或者在实体类中注解开发(这里介绍注解开发的) 总结: 谁管理,谁设外键,对应字段JoinColumn 管理者在前(多对一:多是关联外键;一对多:一是关联外键) 一对多,一带set容器 @joinColumn注解放在get方法上,放在字段上会报错找不到列 1.单项多对一(在多的一...

开发随笔-猫咪酱 900

JPA中的一对多双向关联与级联操作

学习Spring有两周时间了 , 个人觉得服务端主要实现的是数据关系的维护和数据结构的制定 , 以及由业务需求产生的CRUD , 只要保证对前端提供的接口稳定高效响应 , 具体的前端实现完全不关心. 这个是接触后端的一个感受 , Spring boot使用了特定的方式来进行配置 ,大大简化了后端开发人员的开发工作量 ,比如JPA:用来操作实体对象,执行CRUD操作,框架在后台替我们完成所...

wc0000000的博客 511

JPA进阶二

JPA进阶二单向一对多集合映射双向多对一&双向一对多级联操作单向多对多双向多对多一对一 单向一对多 单向一对多是指,由一方来控制外键,多方不管理,这种方法会影响性能,不建议使用 在一方类中定义一个集合Set对象(对象要使用多态的写法,并且加上泛型),然后在其上打上注解@OneToMany表明交给一方来管理外键 @Entity public class Product { @Id @...

weixin_45389591的博客 226

双向一对多(多对一)@OneToMany或@ManyToOne的用法

例如我们用一个例子来开启JPA的一对多和多对一的学习。   比如你去当当网上买书籍,当当网就给你一个订单。   通过上面的业务活动描述你可以分析得出:一个订单可以包含一个或多个订单项.那么我们将将订单和订单项设计关系为(1:N)一对多的关系(排除0)。得出关系我们就使用JPA来实现这个关系(关于建立JPA和基本的配置我就不再说了,如果不明白请看JPA入门篇)。 首先建立订单实体类

Fasure_Smile的博客 8739
上一篇: Jpa的多对一
下一篇: jpa的Jpql语言和方法
@夫子慧
博客等级 码龄9年 9粉丝 55原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值