Jpa的多对一

JPA 菜鸟教程 3 单向多对一 JPA中的@ManyToOne 主要属性 - name(必需): 设定“many”方所包含的“one”方所对应的持久化类的属性名 - column(可选): 设定one方的主键,即持久化类的属性对应的表的外键 - class(可选): 设定one方对应的持久化类的名称,即持久化类属性的类型 - not-null(可选): 如果为true,,表示需要建立相互关联的两个表之间的外键约束 阅读详情

因为jpa是基于Hibernate框架的,所以它可以自己在数据库创建表

但是他的所有的注释写在model类的get的方法上

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

创建model名为order

package org.peter.model;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

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

    @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;
    }
}

创建model名为customer

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;
    }
}

第二步:创建一个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;

/**
 * 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 add(){
        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("张艺三");
        o1.setCustomer(customer);
        o2.setCustomer(customer);
        o3.setCustomer(customer);
        manager.persist(customer);
        manager.persist(o1);
        manager.persist(o2);
        manager.persist(o3);
    }

}

这样就完成了jpa的多对一。

注意:在提交的时候首先一定要提交一个添加操作的,这样可以减少sql语句的生成


资源代码:http://download.youkuaiyun.com/download/strive_peter/9913191

jpa的一对多和多对多代码 主要就是如何实现一对多和多对多的代码 立即下载

相关推荐

JPA一对一,一对多,多对多关系映射

JPA一对一,一对多,多对多关系映射,面向对象领域

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

JPA中的多对多双向关联实体定义与注解设置

NULL 博文链接:https://1028826685.iteye.com/blog/1525772

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

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

开发随笔-猫咪酱 900

Hibernate annotation JPA 一对多,多对多

使用学生(student)、老师(teacher)、班级(class)反映出Hibernate annotation JPA 的一对多、多对多、多对一的关联。或许对您有用

香橙派5Max + Realsense D435i + Fast-Drone-250:手把手教你搭建一个完整的无人机视觉开发环境

本文详细介绍了如何利用香橙派5Max、Realsense D435i深度相机和Fast-Drone-250项目搭建完整的无人机视觉开发环境。从硬件连接到ROS配置,再到项目部署与性能优化,提供全栈式实战指南,助力开发者快速实现SLAM算法验证和自主导航功能开发。

weixin_30879169的博客 462

Spring Boot 入门系列(二十八) JPA 的实体映射关系,一对一,一对多,多对多关系映射!...

前面讲了Spring Boot 使用 JPA,实现JPA的增、删、改、查的功能,同时也介绍了JPA的一些查询,自定义SQL查询等使用。JPA使用非常简单,功能非常强大的ORM框架,无需任何数据访问层和sql语句即可实现完整的数据操作方法。但是,之前都是介绍的单表的增删改查等操作,多表多实体的数据操作怎么实现呢?接下来聊一聊JPA 的一对一,一对多,多对一,多对多等实体映射关系。 一、常用注解...

章为忠的专栏 3505

SAP 超详细解析信用控制

当然,集团内中国区、日本或欧洲区的公司使用了不同本位货币会计核算虽然分开,但对于客户的信用也可以统一管 理的,只要将这些不同本位币的公司代码纳入同一信用控制范围,信用控制范围货币可以考虑使用总部集团的货币,各公司代码的信用发生额自动根据系统设定汇率 转换为统一的信用控制范围货币。此步有一个“覆盖CC范 围”的选项,表示在过账时此步缺省的分配给公司代码的信用控制范围可以在其它信用控制范围使用,有时当一个公司代码的客户需要将信用数据过账到其它信用控 制区域,这个选择就非常有必要。

matinal 當冬夜漸暖 。公众号:matinal 1万+

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

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

weixin_44793245的博客 1566

DAC8568控制器实战:如何用STM32实现多通道同步输出(附完整代码)

本文详细介绍了如何使用STM32微控制器驱动TI的DAC8568多通道DAC控制器,实现高精度的多通道同步模拟信号输出。内容涵盖硬件设计要点、SPI时序精准配置、驱动层命令构建,并重点解析了通过LDAC引脚实现同步更新的核心策略,提供了完整的代码框架和实战案例,帮助工程师快速解决多通道同步输出的工程难题。

weixin_29179311的博客 169

(头歌作业)—6.1 葡萄酒评论分析报告(project)

请读取文件中的数据,完成以下任务:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬。请读取文件中的数据,完成以下任务:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬。请读取文件中的数据,完成以下任务:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬。

2301_80677920的博客 1245

SpringBoot中使用jpa实现一对多(或者多对一)的处理(纯注解的实现方式)

当前环境:idea、springboot 1.简介 由于要求需要使用springboot中使用jpa来简化开发,但是对于一对多或者多对一的关系还是不够了解(由于是使用注解版的)。 所以这里使用了:一个学生对应一个班级,但是一个班级中具有多个学生,所以可以理解为:一个班级中具有一个许多学生(一个班级中具有一个学生集合),一个学生属于一个班级 2.编写数据库 classes班级表中表结构: 学生表u...

编程学习者的博客 6502

Python爬虫实战:逆向工程与异步处理攻克Pinterest无限滚动瀑布流

我们将从零开始,逐步分析其数据接口,构建一个功能完整的爬虫,并深入探讨反爬虫策略的应对、性能优化以及数据存储等高级主题。: 在实际爬取中,你需要先访问一次Pinterest主页,获取初始的Cookie和CSRF Token,然后再发起API请求。: Python爬虫,Pinterest,无限滚动,瀑布流,异步IO,httpx,逆向工程,API接口,动态内容,反爬虫。你会很快发现一些关键的请求模式。:页面初始加载有限内容,随着用户滚动,新的图片块通过AJAX动态加载,实现“永无止境”的浏览。

2201_76125261的博客 551

jpa多对一映射

1.插入 建一个部门类Dept和一个员工类Emp; Emp对Dept是多对一的关系;因为一个部门有多个员工,而一个员工只有一个部门; Emp类中添加一个Dept的属性; @ManyToOne注解表示了员工和部门是多对一的关系; @JoinColumn注解的name属性表示外键名;Emp表中会多出一个外键列; //多对一,一个员工对应一个部门;而一个部门可对应多个员工; ...

weixin_30813225的博客 133

打通ZYNQ的任督二脉:AXI_FIFO数据交互全解析

FIFO(First In First Out,先进先出)是一种经典的数据缓冲结构,就像排队买票一样,先来的人先得到服务。时钟域交叉(CDC):连接不同时钟频率的模块数据缓冲:平衡生产者和消费者的速度差异流量控制:防止数据丢失或溢出input clk,// 输入AXI4-Stream接口(从PS到PL)// 输出AXI4-Stream接口(从PL到PS)// 状态指示信号// 定义状态机状态// 数据缓存// 8个深度的缓存// 流水线处理寄存器。

QQ_778132974的博客 305

YOLOv11 改进 - 注意力机制 | GC Block(GlobalContext Block)全局上下文块:三重变换捕获全局依赖,提升复杂场景鲁棒性

本文介绍了全局上下文块(GC Block)及其在YOLOv11中的集成应用。GC Block是GCNet的核心组件,结合了NLNet和SENet的优势,通过上下文建模、特征变换和特征融合三个模块,高效捕获特征图中的全局依赖关系,在提高模型性能的同时降低计算成本。我们将GC Block引入YOLOv11,在检测头部分的不同尺度特征图上应用该模块。实验表明,改进后的YOLOv11在目标检测任务中表现良好,展现了GC Block在实际应用中的价值。

魔改工程师的博客 951

JPA 多对一一口气讲完!

以下代码显示了如何进行多对一映射。它创建两个实体,人员和部门。一个部门可以有很多人。在Person类的部门字段中,它用@ManyToOne注释标记部门。@Entity@Id。

爱编程的鱼的博客 844

OpenClaw界面操作手册:命令行与交互模式的正确打开方式

"test": {"description": "运行项目的测试套件","prompt": "请执行项目的测试命令,并分析测试结果。如果有失败的测试,请提供修复建议。},"lint": {"description": "运行代码检查","prompt": "请运行代码检查工具,分析所有警告和错误,并提供修复建议。},"doc": {"description": "为当前文件生成文档","prompt": "请为当前打开的文件生成完整的API文档,包括函数说明、参数描述、返回值类型和使用示例。

gaoxiang_120的专栏 3147

java jpa自身关联查询_JPA 查询连接多对一示例

JPA教程 - JPA查询连接多对一示例以下JPQL显示如何连接多对一映射。"SELECT p FROM Professor e JOIN e.phones p")例子下面的代码来自Department.java。package cn.w3cschool.common;import java.util.HashSet;import java.util.Set;import javax.persi...

weixin_39722965的博客 213

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

第二百九十八节 JPA教程 - JPA查询检索多对一映射示例

第二百九十八节 JPA教程 - JPA查询检索多对一映射示例

2301_78772942的博客 774

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Hibernate和JPA使用连接表处理多对一映射

 在项目中,原有的持久化操作时使用JPA进行的,通过注解多对一映射被映射成中间表和两个数据库表,其代码如下:import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Gen

重剑无锋,大巧不工。。。 4407

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

jpa高级 多对一

多对一 entity类 班级类 package com.ysd.entity; import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; import javax.persistence.*; import java.io.Serializable; import java.util.ArrayList; i...

weixin_45597291的博客 174

第二百五十二节 JPA教程 - JPA多对一两个连接列示例

第二百五十二节 JPA教程 - JPA多对一两个连接列示例

2301_78772942的博客 1085

jpa mysql去重复查询_JPA 查询Distinct多对一示例

JPA教程 - JPA查询Distinct多对一示例DISTINCT运算符在功能上等同于同名的SQL运算符。收集结果集后,将删除重复值,以便只返回唯一结果。以下JPQL在多对一映射中使用DISTINCT运算符。例子下面的代码来自Department.java。package cn.w3cschool.common;import java.util.ArrayList;import java.ut...

weixin_32009069的博客 2897

JPA双向一对多和多对一及自关联实例

JPA双向一对多和多对一 博客分类:  EJB3.0 from http://taoistwar.iteye.com/blog/409015   JPA中一对多和多对一双向关系中,多的一方为关系维护端 。有mappedBy的一方为关系被维护端。   关系维护端负责外键纪录的更新 ,关系被维护端是没有权力更新外键纪录的。只能通过关系维护端设置与关系被维护端的关系。

阿义的专栏 6562

jpa--9.单向多对一

1      单向多对一1.1  概念只有一方维护 1.2  配置一个订单只有一个用户,一个用户多个订单   使用 @ManyToOne来映射多对一的关联关系, fetch属性来修改默认的关联属性的加载策略   使用 @JoinColumn来映射外键.    @JoinColumn(name="CUSTOMER_ID")   @ManyToOne(fetch=FetchType.LAZY) 1.3...

村西头的俏寡妇 268
上一篇: jpa的Api
下一篇: jpa的单项一对多,双向一对多
@夫子慧
博客等级 码龄9年 9粉丝 55原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值