java先生的gravatar头像
java先生 2015-10-29 14:16:34

spring data jpa如何在多张数据库表中查询返回某些字段值?

大家好,想请教一个问题:我现在想查询两个表中的某些字段,但是现在数据返回是错误的,spring data jpa如何在多张数据库表中查询返回某些字段值?,想知在java dao层,应该怎么写?


最代码官方编辑于2015-10-29 17:33:51
所有回答列表(4)
渴望飞翔的小猪的gravatar头像
渴望飞翔的小猪  LV10 2015年10月29日

联合查询啊

偷颗菜抱回家的gravatar头像
偷颗菜抱回家  LV14 2015年11月3日

问题描述清楚,到底你是怎么做的?然后数据怎么是错的?

最代码-上海-飞儿的gravatar头像
最代码-上海-飞儿  LV9 2015年11月5日

你通过级联查询 关联两表 查询某些字段数据,基本这条sql就出来啦,多实践!

最代码官方的gravatar头像
最代码官方  LV168 2015年11月9日

对于多表联查需要使用springdata jpa的@Query标注实现,例如最代码的我的私信列表的查询:

public static final String POSTREPOSITORY_FINDALLBYTYPEANDGROUPBYUSERID = "select id from (select id,target_id,case when user_id=?1 and type=?2 then 'sender'  else 'receiver' end flag from javaniu_post where user_id=?1 and type=?2  union select id,user_id,case when user_id=?1	then 'sender'  else 'receiver' end flag from javaniu_post where target_id=?1 and type=?2  order by id desc) as ret group by target_id order by id desc";
@Query(value = RepositoryQuery.POSTREPOSITORY_FINDALLBYTYPEANDGROUPBYUSERID, nativeQuery = true)
List<BigInteger> findAllByTypeAndGroupByUserId(long userId, int type);

调用:

List<BigInteger> _ids = postRepository.findAllByTypeAndGroupByUserId(userId, type);

这样就获取到所有其他用户和我的私信最新的列表

参考

mysql sql查询如何实现发私信用户和其他用户的列表?要求消重所有重复的用户结果

最代码网站的私信功能

顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友