老师我想问下多表关联查询,怎么查询指定的属性

老师我想问下多表关联查询,怎么查询指定的属性

数据表关系

http://img1.sycdn.imooc.com//climg/5f6cb2650973cd5b08430493.jpg

最终想得到的对象

http://img1.sycdn.imooc.com//climg/5f6cb3af09b9c14205090317.jpg

方案1:实体关联查询

如果用导航属性查询的话,一个shop entity会关联很多其他的entity,查询时也会查询出不必要的属性。

方案2:@Query

@Query(value="select new ShopVo(parameter1,parameter2,parameter3) from xxx left join xxx")

方案3:QueryDSL

代码就不写了,和.NET 的EF应该有点像,会受到模型中定义的@OneToOne或者@OneToMany等注解影响

方案4:Criteria查询

这种不封装的话查询起来比较费劲

总结:

我个人比较倾向于QueryDSL,就是会受到模型中属性上的注解影响。

我不是很了解目前比较流行的复杂查询方案,猜测是Criteria。


请问老师:

1 目前什么方案比较流行呢?

2 有没有方便的方案能在多表查询时,只查询某些字段呢

谢谢老师。

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
7七月 2020-09-24 23:58:02

JPA其实如果查询比较复杂的话 优先考虑JPQL

其实实体关联查询出一些其他属性也没关系,因为可以过滤掉

Criteria这种查询其实是很复杂 不太推荐

  • jpa 动态条件查询用什么方案比较好
    2020-09-28 14:19:44
  • 动态查询就是用criteria这种
    2020-09-29 00:33:11
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师