【Spring Boot 3】【JPA】一对一单向关联

【Spring Boot 3】【JPA】一对一单向关联

  • 背景
  • 介绍
  • 开发环境
  • 开发步骤及源码
  • 工程目录结构
  • 总结

背景

软件开发是一门实践性科学,对大多数人来说,学习一种新技术不是一开始就去深究其原理,而是先从做出一个可工作的DEMO入手。但在我个人学习和工作经历中,每次学习新技术总是要花费或多或少的时间、检索不止一篇资料才能得出一个可工作的DEMO,这占用了我大量的时间精力。因此本文旨在通过一篇文章即能还原出可工作的、甚至可用于生产的DEMO,期望初学者能尽快地迈过0到1的这一步骤,并在此基础上不断深化对相关知识的理解。
为达以上目的,本文会将开发环境、工程目录结构、开发步骤及源码尽量全面地展现出来,文字描述能简则简,能用代码注释的绝不在正文中再啰嗦一遍,正文仅对必要且关键的信息做重点描述。

介绍

本文介绍开发Spring Boot应用时如何使用 @OneToOne 注解处理一对一单向关联关系。

存储一对一关联关系通常使用 主从双数据表,其中 主表 中有外键指向 从表,有时也会使用 三数据表,即存在一个 中间关联关系表。本文基于 主从双数据表 实现。

开发环境

分类名称版本
操作系统WindowsWindows 11
JDKOracle JDK21.0.1
IDEIntelliJ IDEA2023.2.4
构建工具Apache Maven3.9.3
数据库MySQL8.0.33

开发步骤及源码

1> 创建Maven工程,添加依赖。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>com.jiyongliang</groupId><artifactId>springboot3-jpa</artifactId><version>0.0.1</version></parent><artifactId>springboot3-jpa-one-to-one-uni</artifactId><properties><java.version>21</java.version><maven.compiler.source>21</maven.compiler.source><maven.compiler.target>21</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><spring-boot.version>3.2.2</spring-boot.version><mysql-connector-j.version>8.3.0</mysql-connector-j.version><flyway.version>10.6.0</flyway.version><lombok.version>1.18.30</lombok.version></properties><dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>${spring-boot.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><dependencies><dependency>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/691033.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

408计算机网络--基础概论

学习计算机网络走以前需要首先明白一个大的概念&#xff0c;计算机网络通常分为通信子网&#xff08;实现数据通信&#xff09;和资源子网&#xff08;实现资源共享/数据处理&#xff09;七层妖塔 计算机网络&#xff1a;是一个将分散的、具有独立功能的计算机系统&#xff0…

Rabbitmq入门与应用(三)-RabbitMQ开发流程

RabbitMQ开发流程 引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId> </dependency>配置MQ 最简配置 spring:rabbitmq:host: mq的安装机器ipport: 5672username: ad…

基于python+mysql的宠物领养网站系统

功能介绍 平台采用B/S结构&#xff0c;后端采用主流的Python语言进行开发&#xff0c;前端采用主流的Vue.js进行开发。 整个平台包括前台和后台两个部分。 前台功能包括&#xff1a;首页、宠物详情页、用户中心模块。后台功能包括&#xff1a;总览、领养管理、宠物管理、分类…

简单介绍一下WebRTC中NACK机制

WebRTC中的NACK&#xff08;Negative Acknowledgement&#xff09;是一种用于实时通信的网络协议&#xff0c;用于在传输过程中检测和纠正丢包。当接收方检测到数据包丢失时&#xff0c;它会发送一个NACK消息给发送方&#xff0c;请求重新发送丢失的数据包。 NACK的工作原理如…

使用Hutool的ExcelUtil工具导出Excel时遇到的异常

遇到的异常信息&#xff1a; You need to add dependency of ‘poi-ooxml’ to your project, and version > 4.1.2nested exception is java.lang.NoSuchFieldError: Factoryorg.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorkbookorg.apache.logging.log4j.Log…

忘记管理员密码

1、在/home/jenkins/config.xml中删除&#xff1a; <useSecurity>true</useSecurity><authorizationStrategy class"hudson.security.FullControlOnceLoggedInAuthorizationStrategy"><denyAnonymousReadAccess>false</denyAnonymousRea…

uniapp校验app版本并更新

最近用uniapp写了一个安卓壳子做app&#xff0c;遇到一个需求&#xff0c;校验app版本并更新 通过对比线上版本号和app自己的版本号的差异&#xff0c;唤起更新弹窗 相关代码 App.vue <script>export default {onLaunch: function() {this.checkVersion()},onShow: f…

Hack The Box-Office

端口扫描&信息收集 使用nmap对靶机进行扫描 nmap -sC -sV 10.10.11.3开放了80端口&#xff0c;并且注意到该ip对应的域名为office.htb&#xff0c;将其加入到hosts文件中访问之 注意到扫描出来的还有robots文件&#xff0c;经过尝试后只有administrator界面是可以访问的 …

详解平面点云面积计算

部分代码展示&#xff1a; &#xff08;1&#xff09;利用格网法计算面积&#xff1a; //&#xff08;2&#xff09;测试使用格网法计算平面点云面积 void main() {char *inputpath "D:\\testdata\\data.txt";vector<pcl::PointXYZ> points ReadPointXYZIn…

Java 21 新特性的扫盲级别初体验

一、前言 JDK 21 于 2023 年 9 月发布&#xff0c;作为目前讨论热度最高的JDK&#xff0c;虽然大家都开玩笑说你发任你发&#xff0c;我用Java8&#xff0c;但是作为一个Javaer&#xff0c;对JDK21的新特性还是要有所了解的。 以下是 JDK 21 的新功能列表&#xff1a; 虚拟线…

element-plus日期选择器2次封装

预期效果 官网默认样式&#xff1a; 修改后的样式&#xff1a; 代码实现 DatePicker.vue <template><div class"date-picker-container"><el-date-picker v-model"date" change"handleChange" type"date" value-for…

CMake无Name和Value部分界面

鼠标会变成以下 拉开后就 出现想要的部分

PTA-九九乘法表

从键盘输入n&#xff08;n为1~9&#xff09;&#xff0c;输出九九乘法表的前n行&#xff0c;每个式子按“a * b c”形式输出&#xff0c;其中a和b各占1位列宽&#xff0c;c占4位列宽并左对齐。 输入格式: 一个1~9之间的整数n&#xff0c;如&#xff1a;9 输出&#xff1a; …

牛客小白月赛87 D 小苯的IDE括号问题(hard)

原题链接&#xff1a;D-小苯的IDE括号问题&#xff08;hard&#xff09; 题目大意&#xff1a;给定一个长度为n的字符串&#xff0c;字符串由&#xff08;&#xff0c;&#xff09;和I构成&#xff0c;m组询问&#xff0c;如果输入backspace&#xff0c;如果I左右是&#xff0…

15个学习Go语言的网站推荐

1. Tour of Go 网站地址&#xff1a;tour.golang.org 网站介绍&#xff1a;Tour of Go是一个关于Go语言特性的交互式游览和教程 2. Go by Example 网站地址&#xff1a;gobyexample.com 网站介绍&#xff1a;Go by Example是一个通过一系列可执行代码实例来学习Go语言的优…

Java解决删除某些元素后的数组均值

Java解决删除某些元素后的数组均值 01 题目 给你一个整数数组 arr &#xff0c;请你删除最小 5% 的数字和最大 5% 的数字后&#xff0c;剩余数字的平均值。 与 标准答案 误差在 10-5 的结果都被视为正确结果。 示例 1&#xff1a; 输入&#xff1a;arr [1,2,2,2,2,2,2,2,…

最优字符串分隔符:零宽度空格和字符

引言 在文本处理和格式化中&#xff0c;选择合适的分隔符是至关重要的。 本文将在介绍两个不常见但功能强大的分隔符&#xff1a;零宽度空格和&#x10000;字符。 零宽度空格&#xff08;Zero Width Space&#xff09; 零宽度空格是Unicode字符集中的一个特殊字符&#xff…

2024前端面试准备之uniapp篇

全文链接!!!!!!! 1. UniApp和其他跨平台框架(如React Native、Flutter)有什么区别? 语言和技术栈:UniApp使用Vue.js作为开发语言和技术栈,而React Native使用React.js,Flutter使用Dart语言。开发者可以根据自己的技术背景和偏好选择合适的框架。 性能和体验:Uni…

vue3项目配置按需自动引入自定义组件unplugin-vue-components

我们通常在项目中&#xff0c;需要手动引入自定义的各种组件&#xff0c;如果涉及的页面功能比较多的话&#xff0c;光是import的长度都能赶上春联了。 如果&#xff0c;能有一个插件帮我们实现自动引入&#xff0c;是不是要谢天谢地了呢&#xff1f; 接下来就进入我们的主角u…

uni-app判断不同端

大家好&#xff0c;今天给大家分享的知识是在uni-app中如何区分是在什么端操作的程序 话不多说直接上代码&#xff1a; // #ifdef APP-PLUS<view>APP端</view>// #endif// #ifdef H5<view>H5端</view>// #endif// #ifdef MP<view>小程序端</v…