红茶的个人站点

  • 首页
  • 专栏
  • 开发工具
  • 其它
  • 隐私政策
hibernate
Spring Boot 学习笔记

从零开始 Spring Boot 62:过滤实体和关系

图源:简书 (jianshu.com) JPA(Hibernate)中有一些注解可以用于筛选实体和关系,本文将介绍这些注解。 @Where 有时候,我们希望对表中的数据进行“软删除”,即删除的时候只修改其标记位而不从表中物理删除。 对于存在软删除的表,在执行相应查询的时候都要考虑删除标记,即添加上相应字段的条件语句后进行查询。这样就显得很麻烦,持久层框架一般都会支持对这种情况的“自动处理”,比如 MyBatisPlus。 JPA(Hibernate) 同样支持这种做法,通过使用@Where注解实现: @Entity…

2023年7月6日 0条评论 1192点热度 0人点赞 魔芋红茶 阅读全文
Spring Boot 学习笔记

从零开始 Spring Boot 61:JPA 中的级联类型

图源:简书 (jianshu.com) 关系型数据库的增删改查操作会因为有关联关系而存在“级联操作”的需要,体现在 JPA 中,就是实体中会定义的级联类型(Cascade Type)。 JPA 中的级联类型由枚举jakarta.persistence.CascadeType表示,包括: ALL PERSIST MERGE REMOVE REFRESH DETACH 这些级联类型对应实体对象的状态转换操作,具体可以参考这篇文章。 ALL包含其他所有的操作。 下面详细说明这些级联类型的用途和影响。 示例 本文将使用以下…

2023年7月5日 0条评论 1282点热度 0人点赞 魔芋红茶 阅读全文
Spring Boot 学习笔记

从零开始 Spring Boot 60:一个实体映射到多个表

图源:简书 (jianshu.com) 在之前的文章中我们讨论了 JPA 中的一对一关系,实际上存在一种特殊的一对一关系,即将一个实体映射到多张表,本文会讨论这种关系。 我之前提过,有时候会因为性能上的考量将一张表拆分成多张表,虽然拆分后也可以用一对一关系来表示和实现,但这样并不是特别合适,因为一对一关系中一边的关系是可以为null的,比如说一个学生对应一个电子邮件地址,也可能有的学生没有电子邮件地址,此时email表可能就没有一条对应的数据。但如果是从同一张表上拆分出的两张表,必然存在一对一的关系,即使另一张表中…

2023年7月4日 0条评论 1776点热度 0人点赞 魔芋红茶 阅读全文
Spring Boot 学习笔记

从零开始 Spring Boot 59:Hibernate 日志

图源:简书 (jianshu.com) Hibernate 支持多种日志模块,本文介绍如何在 Spring Boot 中使用 Log4j2记录 Hibernate 日志。 实际上本文是我在写上篇文章时遇到的各种坑和最终解决的记录。 首先需要添加 Log4j2 的依赖,并排除 Spring Boot 默认使用的 logging common 日志模块: <dependency>    <groupId>org.springframework.boot</groupId>    &l…

2023年7月4日 0条评论 1034点热度 0人点赞 魔芋红茶 阅读全文
Spring Boot 学习笔记

从零开始 Spring Boot 58:JPA中的多对多关系

图源:简书 (jianshu.com) 之前用两篇文章介绍了 JPA 中的一对一关系和一对多关系,实际上日常开发更多见的是多对多关系,本文将介绍如何在 JPA 中实现实体的多对多关系。 假设这里有两张表,学生表和课程表,我们需要将其对应起来。这两张表之间存在多对多的关系:一个学生可以选择多个课程,一个课程可以被多个学生选择。 可以用数据模型表示为: 我们用一个中间表(关联表)保存两个表之间的这种多对多的关联关系。 这里有一个细节,两个表与关联表之间的关系是一对多的。这很好理解,一个学生可以在关联表中出现多次。同样的…

2023年7月4日 0条评论 1316点热度 0人点赞 魔芋红茶 阅读全文
Spring Boot 学习笔记

从零开始 Spring Boot 55:JPA 中的主键和唯一索引

图源:简书 (jianshu.com) 在表结构设计中,我们用主键来确保一条数据在表中的唯一性。类似的,可以用唯一索引确保某列数据都是唯一的。如果需要限制多个列的唯一性,还可以使用联合唯一索引。 本文将探讨如何在 JPA (Hibernate)中使用主键和唯一索引。 主键 通过之前的文章,我们已经很熟悉怎么在实体中设置一个自增主键了,这也是表结构设计中最常见的方式。但严格来说,对于关系型数据库这并不是必须的。实际上这是日常开发应用中的一种“改良”,使用一个唯一的自增索引可以降低表结构设计的复杂度,并且在利用 Id …

2023年7月1日 0条评论 1498点热度 0人点赞 魔芋红茶 阅读全文
Spring Boot 学习笔记

从零开始 Spring Boot 51:JPA 中的默认列值

图源:简书 (jianshu.com) JPA 是一个 ORM 框架,因此,通常我们需要在实体类中定义表结构,这其中就包含可能的字段默认值。 本文介绍如何在 Hibernate(JPA)中设置默认列值(Default Column Value)。 默认属性值 最简单的方式是对实体类指定一个默认的属性值,比如: @Data @Table(name = "USER_TREE") @Entity public class Tree {    @Id    @GeneratedValue(strategy = Genera…

2023年6月29日 0条评论 923点热度 0人点赞 魔芋红茶 阅读全文
Spring Boot 学习笔记

从零开始 Spring Boot 49:Hibernate Entity Lifecycle

图源:简书 (jianshu.com) 本文将介绍 Hibernate 的 Session 接口,以及如何用 Session 的相关 API 转换实体(Entity)的生命周期状态。 如果缺少的 JPA 和 Hibernate 的基本认识,可以阅读前篇文章。 概念 持久化上下文 在 JPA 的相关概念中,存在一个持久化上下文(Persistence Context)。 持久化上下文处于代码端与数据库之间,充当一个容器或一级缓存的作用,负责管理运行时的实体(Entity),它可以在合适的时间从数据库中加载数据到实体对…

2023年6月28日 0条评论 1221点热度 0人点赞 魔芋红茶 阅读全文
Spring Boot 学习笔记

从零开始 Spring Boot 48:JPA & Hibernate

图源:简书 (jianshu.com) 对象关系映射(ORM)是将Java对象转换为数据库表的过程。换句话说,这允许我们在没有任何SQL的情况下与关系数据库进行交互。Java Persistence API(JPA)是一个定义如何在Java应用程序中持久化数据的规范。JPA的主要焦点是ORM层。 Hibernate是目前使用的最流行的Java ORM框架之一。它的第一个版本几乎是20年前的事了,现在仍然有优秀的社区支持和定期发布。此外,Hibernate是JPA规范的标准实现,它还具有一些特定于Hibernate的…

2023年6月25日 0条评论 1266点热度 0人点赞 魔芋红茶 阅读全文

魔芋红茶

加一点PHP,加一点Go,加一点Python......

专栏
  • SpringMVC 学习笔记 SpringMVC 学习笔记
  • MySQL学习笔记 MySQL学习笔记
  • Spring Boot学习笔记 Spring Boot学习笔记
  • Java编程笔记 Java编程笔记
  • php学习笔记 php学习笔记
  • Go语言编程笔记 Go语言编程笔记
  • 设计模式 with Python 设计模式 with Python
  • Linux之旅 Linux之旅
  • 腾讯云博客搭建 腾讯云博客搭建
  • HTTP学习笔记 HTTP学习笔记
项目
  • M3U-Helper M3U-Helper
  • Markdown-img Markdown-img
  • PEP中文翻译项目 PEP中文翻译项目
工具箱
  • 我的Windows软件列表 我的Windows软件列表
点歌台
最新 热点 随机
最新 热点 随机
Activiti 学习笔记 1:开始 Redis 学习笔记 8:附近店铺 Redis 学习笔记 7:达人探店 Redis 学习笔记 6:消息队列 Redis 学习笔记 5:分布式锁 Redis 学习笔记 4:优惠券秒杀
Redis 学习笔记 4:优惠券秒杀Redis 学习笔记 5:分布式锁Redis 学习笔记 6:消息队列Redis 学习笔记 7:达人探店Redis 学习笔记 8:附近店铺Activiti 学习笔记 1:开始
人可以无耻到什么程度 JavaWeb 学习笔记 2:Tomcat Java编程笔记30:MVC 腾讯云OSS使用指南 python爬虫实战 能用,但不是完全能用
最近评论
fuckbaidu 发布于 3 年前(02月26日) 兄弟,你新网址一直没备案成功
啊长 发布于 3 年前(12月17日) 膜拜大佬了,希望越做越好 :exclaim:
nfmd 发布于 4 年前(11月01日) 腾讯云出了个60块六年多的bug
nfmd 发布于 4 年前(10月30日) str.replace("逻辑", "罗辑")
fuckbaidu 发布于 4 年前(10月14日) 并不是所有的文件都能通过软链接转移,比如chrome浏览器,你要是转移了,就不能自动更新了
友情链接
  • NFMD's blog
  • 小金龙的blog
  • 幸哥的blog

COPYRIGHT © 2021 icexmoon.cn. ALL RIGHTS RESERVED.
本网站由提供CDN加速/云存储服务

Theme Kratos Made By Seaton Jiang

宁ICP备2021001508号

宁公网安备64040202000141号