使用JPA进行数据查询和关联查询

 我来答
新科技17
2022-07-23 · TA获得超过5861个赞
知道小有建树答主
回答量:355
采纳率:100%
帮助的人:73万
展开全部

在开发中经常会使用mybatis、jpa等框架来解决O/R映射技术实现数据访问。本文主要介绍使用JPA实现数据访问。
通常在关联查询的时候,表与表之前存在的关系有</br>
OneToOne</br>
OneToMany</br>
ManyToOne</br>
ManyToMany</br>
想要理清两个表之间的关系需要根据实际场景进行区分。在建立实体类的时候,需要知道哪一个是主体。通常情况下一对多和多对一始终是以多的一方为主体的。注解在使用中“始终在非主体的一方标记自己在主体中的名称”

举例:有如下几个表的关系,表之间的ER图如下:

Student和Sore对应的关系,score类如下:</br>

student类如下:</br>

在Student中加入school类的,多对一关系,并且需要在school类中指定其在student中的名字

Subject和Student之间是多对多的关系,下面建立subject类

在student类中加入

基本查询通过继承JpaRepository<T,key>就可以了,如果符合规范可以不用写实现

通过以上就可以进行基本的增删改查
如果JpaRepository条件不能满足需求,也可以自定义Repository自定义条件:
举例:需要通过一个学生的id 查询出这个学生所在学校的的名字
根据SimpleJpaRepository写一个Repository。

进行测试

举例:需要通过学校的id查询该学生的所有信息
从以上需求可以看出需要到school和student关系的主体表中进行查询。即在student表中进行查询,通过jpa规范书写查询

从例子中可以看出关联查询主要是用" "符号,
如果通过本章表中id查询本章表中的role信息可以这么写:findById()
如果通过本章用户表中id查询本章表中的role信息可以这么写:findBySUser_Id()
如果既要通过本章表中的id查询有要通过用户表中的id进行查询,可以这么写:findBySUser_IdAndId()
如何还想关联更多的表可以在后面添加:And+表名字+“
”+表中要查询的字段。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式