
jpa
文章平均质量分 70
HD243608836
这个作者很懒,什么都没留下…
展开
-
Springboot JPA不用@Repository注解
在springboot+jpa的项目中,dao层只要实现JpaRepository接口就可以达成mybatis中注解@Repository+继承通过mapper的效果。网上找了好久,都没找到具体为什么jpa不用@Repository的原理,根据查到的资料推测应该要去解析spring本质才可以彻底理解,但实在没时间了,只能暂时这样了。继承了Repository接口的接口或者类,都相当于使用了@Repository注解,继承。根据接口的本质是类,注解的本质是一个接口。是注解的@Repository,转载 2023-04-24 12:55:58 · 377 阅读 · 0 评论 -
【原创】spring data jpa在mysql分页中的实例(一次访问同时获取数据和总数)
mysql中语句如下selectlimit 0,10;原创 2022-11-16 18:42:13 · 1902 阅读 · 1 评论 -
springboot中com.fasterxml.jackson.annotation注解@JsonIgnoreProperties
一、jackson的mavern依赖 <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.5.3</version></dependency> 二、使用的背景 springboot项目中定义了很多.转载 2021-12-19 19:33:52 · 11737 阅读 · 0 评论 -
Spring JPA不用@Repository--笔记
网上找了好久,都没找到具体为什么jpa不用@Repository的原理,根据查到的资料推测应该要去解析spring本质源码才可以彻底理解,但实在没时间了,只能暂时这样了。~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Spring通过扩展预定义Repository接口之一来识别存储库(不是实现接口)。@NoRepositoryBean注释的目的是防止Spring将该特定接口本身视为存储库。Repository接口:仅仅是一个标识,表明任何继承它的均为仓库接转载 2021-12-19 16:11:28 · 708 阅读 · 0 评论 -
【jpa的坑】解决SpringBoot JPA查询时使用set方法时自动更新数据库问题
困扰了我将近一周的诡异bug!现象:整个项目没有插入数据库该表的数据的代码,诡异的增加数据。后来和使用该项目的同事一起分析总结规律,好像都是页面查询显示时会触发数据库update,于是Mysql中加入了binlog和general_log。一番苦等,两天之后,终于同事发现不断使用页面查询后,过几分钟,诡异重现!!!数据不断变化,于是查看bin-log(或general_log)发现居然有update语句出现,而且最初发生update的开始时间与同事执行的查询时间中某一条数据的时间一致,秒都没差转载 2021-12-01 16:20:56 · 3072 阅读 · 0 评论 -
Spring DATA JPA 中findAll 进行OrderBy
需要在 repository 中 定义这样的方法 :findAllByOrderByUpdatedAtDesc()public List findAllByOrderByUpdatedAtDesc();重要:(中间要多加一个By)findAllByOrderByUpdatedAtDesc();The little ‘By’ does all the magic.————————————————原文链接:https://blog.youkuaiyun.com/remote_roamer/artic转载 2021-10-26 17:09:21 · 502 阅读 · 0 评论 -
CascadeType.MERGE报错解决:Multiple representations of the same entity are being merged
一、问题我有三个实体有很多关系:角色实体:@Entitypublic class Role { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer roleID; private String roleName; private String description; @ManyToMany(cascade = {CascadeType.MERGE,转载 2021-10-08 20:15:38 · 1039 阅读 · 0 评论 -
Spring Data JPA中使用Specification<T>实现动态查询与分页查询(清晰!)
首先, 定义的Dao接口不仅要继承JpaRepository接口,还有继承JpaSpecificationExecutor接口, 如下://JpaRepository 用于简单查询//JpaSpecificationExecutor 动态拼接sql 用于复杂查询public interface LabelDao extends JpaRepository<Label,String> ,JpaSpecificationExecutor<Label> {}分析源码按转载 2021-05-07 19:44:15 · 1986 阅读 · 0 评论 -
SpringBoot | JPA基本查询及多条件查询findBy,以及参数为空null判断(很全!很直观!!)
JPA 基本查询Spring Data JPA提供的一个查询规范,查询语句关键字,简单的SQL可根据方法命名来即可,省略了写sql语句。关键字 方法命名 sql where字句And findByNameAndPwd where name= ? and pwd =?Or fin转载 2021-05-07 19:23:52 · 16893 阅读 · 0 评论 -
快速学会JPA中所有findBy语法规则(好文章!简单明了!精辟!!)
1、findByfindAllBy的区别它们之间没有区别,它们将执行完全相同的查询,当从方法名称派生查询时,Spring Data会忽略All部分。唯一需要强调重要的一点是By关键字,其后面的任何内容都被视为字段名称,如 findXXXXXXXXXXXXXByName 实际上==》 findByName2、JPA中支持的关键词And --- 等价于 SQL 中的 and 关键字,比如 findByUsernameAndPassword(String user, Striang pwd);..转载 2021-05-07 16:58:54 · 6711 阅读 · 1 评论 -
JPA中所有findBy语法规则(举例)
JPA中findBy基本语法规则:1.首先先新建一个数据库,名字叫做jpatest2.新建一个SpringBoot项目(如果新手还不会,请先阅读idea中如何快速创建SpringBoot项目)这边需要引入jpa+mysql+web的相关依赖,如果创建的时候没有引入就需要在pom.xml进行配置新建一个controller包(控制类所在地),entity包(实体类所在地),repository包(dao类所在地)3.application.properties配置文件中..转载 2021-05-07 16:52:51 · 9059 阅读 · 0 评论 -
JPA 关系映射(OneToOne、OneToMany、ManyToMany)(IBM官方文档)
单向 OneToOne单向一对一是关联关系映射中最简单的一种,简单地说就是可以从关联的一方去查询另一方,却不能反向查询。@OneToOne注解只用于关系的发出端,同时定义一个接收端类型的字段属性; 单向的一对一关系在数据库中是以外键的形式被映射的, 其中关系的发出端存储一个指向关系的接收端的一个外键。 缺省情况下这个外键的字段名称,是以它指向的表的名称加下划线“_”加“ID”组成的。 当然我们也可以根据我们的喜好来修改这个字段,修改的办法就是使用 @JoinColumn 这个注解@O转载 2021-04-25 21:02:43 · 1638 阅读 · 0 评论 -
Spring Jpa ManyToMany(多对多)关系中的cascade={CascadeType.X} 的配置与总结(好文章!!不看会踩坑,必看!)
角色表用户表中间表CascadeType.MERGE新增账户并添加不存在的角色,Jpa执行的语句可以看到首先对role角色表进行了查询,不存在就添加一个角色。Hibernate: select role0_.role_id as role_id1_4_0_, role0_.role_name as role_nam2_4_0_ from role role0_ where role0_.role_id=?Hibernate: insert into user (user_na转载 2021-04-25 20:27:36 · 868 阅读 · 1 评论 -
Hibernate中多对多的annotation的写法——jpa OneToMany ManyToMany(中间表可以有多个字段)(好文章!!)
一般情况下,多对多的关联关系是需要中间表的;情况一:如果中间表仅仅是做关联用的,它里面仅有2个外键做联合主键,则使用ManyToMany(不用写中间表的Model,只需要写出两张主表的model即可)学生表:@Entity@Table(name = "T_STUDENT")@SequenceGenerator(name = "SEQ_STUDENT", sequenceName = "SEQ_STUDENT")public class Student implements S..转载 2021-04-25 19:22:08 · 1005 阅读 · 0 评论 -
springboot jpa外键 (user role)双向多对多@ManyToMany(原创)
多个用户可能有多个角色,多个角色可能有多个用户。所以这种情况下就使用@ManyToMany进行关联(jpa会自动生成中间表,java的entity代码中只需要User类和Role类,无需创建中间表user_role类(sql建表语句中可以手动创建该中间表,不手动创建jpa系统也会帮忙自动创建))注意:不能用lombok的@EqualsAndHashCode和@ToString,否则死循环内存溢出User表:package com.cmit.oag.backend.entity.comm原创 2021-04-25 18:44:03 · 9999 阅读 · 1 评论 -
Spring Data JPA OneToMany级联,多方删除修改新增详解(好文章!!申精!!)
前言近期的项目中使用Spring Data JPA。JPA带来很大的便捷,但它内部映射关系及持久化机制如果理解不到位会出现很多问题。不同的配置将会产生不同的执行过程。如果不了解其运行机制,很容易在一个问题上摸索很久,找不到答案。近期碰到一个问题,在一对多关系中,先进行了一方的查询,然后找到需要删除多方数据,做删除操作。看似简单的删除,但JPA在不同的onToMany配置下,却呈现出不同的执行结果。正好借此机会做了oneToMany不同配置的实验,在此做个记录。也希望通过实验,找到不同场景下最佳的配置方式转载 2021-03-17 17:29:08 · 2089 阅读 · 0 评论 -
jpa执行原生sql,返回自定义对象(好文章!!)
jpa执行原生sql,返回自定义对象前言:我之前是用mybatis的,到了一个新公司,用的是hibernate了,感觉非常不适用,想写原生sql,百度了一天,有说用接口的,有说用工具类的,都不合我意,偶然看到一位大神的博客,不记得地址了,感谢,侵删。废话少说,直接上代码:我要实现这样的sql,select a.name,a.address,b.password,b.phone from tableA a inner join tableB b on a.bid = b.id where a转载 2020-12-04 17:02:56 · 1523 阅读 · 0 评论 -
spring data jpa级联更新update或删除(好文章!!)
A collection with cascade="all-delete-orphan" was no longer referenced by the owning entity instance: com.htsc.thfx.framework.entity.user.UserInfo.authorities; nested exception is org.hibernate.HibernateException: A collection with cascadejpa 中pac..转载 2020-12-01 21:29:33 · 2113 阅读 · 0 评论 -
Spring Data JPA 简单查询语法--方法定义规则(终于找到这么全的了,好文章!!!)
转载自,原文格式清晰:https://www.cnblogs.com/rulian/p/6434631.html一、常用规则速查1 And 并且2 Or 或3 Is,Equals 等于4 Between 两者之间5 LessThan 小于6 LessThanEqual 小于等于7 GreaterT...转载 2020-04-22 19:03:56 · 7516 阅读 · 0 评论 -
JPA多属性排序以及JPAwhere多条件动态查询
PageRequest pageable = PageRequest.of(page, limit,new Sort(Direction.DESC,"XXX").and(new Sort(Direction.DESC,"XXX"))); 1. 动态Where条件查询注意如果有动态where,而且没有一项确定的值,需要加where 1=1如果不为空查询,为空不查询@Query(...转载 2020-03-02 14:43:04 · 2675 阅读 · 0 评论 -
Spring data jpa 复杂动态查询、筛选、排序方式总结(结合上一篇博客排除空值,完美!)
四.继承JpaSpecificationExecutor接口进行复杂查询spring data jpa 通过创建方法名来做查询,只能做简单的查询,那如果我们要做复杂一些的查询呢,多条件分页怎么办,这里,spring data jpa为我们提供了JpaSpecificationExecutor接口,只要简单实现toPredicate方法就可以实现复杂的查询参考:https://www.cnb...转载 2020-02-28 19:34:22 · 2903 阅读 · 0 评论 -
JPA的多表复杂查询筛选:详细篇
最近工作中由于要求只能用hibernate+jpa 与数据库进行交互,在简单查询中,jpa继承CrudRepository接口 ,然后利用jpa的方法命名规范进行jpql查询,然而在进行复杂查询时,需要继承JpaSpecificationExecutor接口利用Specification进行复杂查询,由于我自己就遇到了这一问题,查了好多资料,虽然有方法,但是都没有一个详细的讲解,以至于知道方法而不...转载 2020-02-28 19:22:38 · 1877 阅读 · 1 评论 -
SpringData系列四 @Query注解及@Modifying注解(实用)
@Query注解查询适用于所查询的数据无法通过关键字查询得到结果的查询。这种查询可以摆脱像关键字查询那样的约束,将查询直接在相应的接口方法中声明,结构更为清晰,这是Spring Data的特有实现。 索引参数与命名参数 1、索引参数如下所示,索引值从1开始,查询中"?X"个数需要与方法定义的参数个数相一致,并且顺序也要一致。 1 @Query("SELECT p FRO...转载 2020-01-20 16:06:01 · 542 阅读 · 0 评论 -
spring data jpa 实战之增删改查(干货!你想要的查询!)
熟悉了mybatis的灵活,可能你对他的动态查询很喜欢,表示各种sql都能胜任。初步接触jpa时,你会各种吐槽,不如mybatis来的方便。其实jpa也能帮你完成你的各种需求,至于编写的复杂度,那可能就仁者见仁智者见智了。习惯了,其实也一样了。代码放github和码云了:spring-data/github spring-data/码云save操作(含merge操作,即update也在...转载 2019-12-25 10:58:52 · 962 阅读 · 0 评论 -
JPA注解主键生成策略-UUID
@GeneratedValue:主键的产生策略,通过strategy属性指定。 主键产生策略通过GenerationType来指定。GenerationType是一个枚举,它定义了主键产生策略的类型。 1、AUTO 自动选择一个最适合底层数据库的主键生成策略。如MySQL会自动对应auto increment。这个是默认选项,即如果只写@GeneratedValue,等价于@Gener...转载 2019-12-25 10:35:04 · 1553 阅读 · 0 评论