spring data jpa 学习笔记

本文介绍JPA中对象关系映射的基本概念,并通过具体示例解释如何使用@ManyToOne和@OneToMany注解来实现多对一及一对多的关系映射。此外,还介绍了Spring Data JPA中的查询方法命名规则及其注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

近期项目在使用jpa  一开始对这个很抵触,但是既然用了就还是硬着头皮使用了.今天又恰巧看了这方面的书,记录一下学习笔记!

在jpa 中经常用到的就是 对象关系的映射!因为这是直接以操作对象来操作数据库,而不是我们写sql 语句,因此对象关系的梳理就比较是重点了!

注意:所有的关系都是说的是当前对象对于这个属性这个角度来说的,比如:

@ManyToOne 

有这么两个类


@Entity

public class User{

//jpa 中需要空参的构造函数  因为Java  默认有一个空参的   如果你确认不会写到 有参数构造 ,那么这个可以省略,不过还是建议直接加上的

private  User user(){}

//此处省略其他的属性....

@ManyToOne  //多个用户对应一个部门 所以使用这个注解

@JoinColumn(name="department_id")//数据库中在user表中 有部门的id

private Depatrment department;

//忽略 get set 方法

}

//接下来写部门

public class Department{

//构造函数...


//此处省略其他的属性....

@OneToMany(mappedBy="department") 这里one 的一端必须加上mappedBy 以声明many端的对象的department属性是

提供了对应的关系映射

private  Set<User> users=new hashSet<User>();  jpa 要求使用set  而不是list

//忽略 get set 方法 

}

jap 查询遵循规则  findBy , getBy,queryBy开头 spring Data JPA 才能自动转化为JPQL

查询结果排序的话 方法名包含OrderBy+属性+ASC(DESC)

可以通过top first 来限定查询结果

对于查询的结果 不能映射到任意的pojo 或 者map 对象上  对于这种非实体返回结果  只能使用object[]来处理 比如count(*)返回的可能是BigInteger 或者BigDecimal

可以使用Pageable 当做入参  来进行分页


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值