您好,你的sql语句可以这样写: @Query(value=“ select * from a where name =?1 or -1=?1”,nativeQuery = true) 这样写就行了,让前端查询的时候,如果按照name查询,就传具体name的值,如果查询全部,就给你传 '-1' 即可! 我们的项目中一直就是这样写的. 你的sql语句肯定是不行的,数据库有个最左匹配原则,所以按照你的sql执行逻辑来看永远查的都是全部数据.
引用 4 楼 sinat_37774909 的回复:[quote=引用 3 楼 qq_21985711 的回复:] [quote=引用 2 楼 sinat_37774909 的回复:] 用@query是不好实现的,而且你这写的不通用,用jap的getBaseDao().findAll(getSpecification(spec));这个方法,拼接条件可以实现,这个sql比较复杂关联了5张表还有子查询,用jpa的方式实现不了,用自定义的好写一些
[quote=引用 3 楼 qq_21985711 的回复:] [quote=引用 2 楼 sinat_37774909 的回复:] 用@query是不好实现的,而且你这写的不通用,用jap的getBaseDao().findAll(getSpecification(spec));这个方法,拼接条件可以实现
引用 3 楼 qq_21985711 的回复:[quote=引用 2 楼 sinat_37774909 的回复:] 用@query是不好实现的,而且你这写的不通用,用jap的getBaseDao().findAll(getSpecification(spec));这个方法,拼接条件可以实现,这个sql比较复杂关联了5张表还有子查询,用jpa的方式实现不了,用自定义的好写一些
[quote=引用 2 楼 sinat_37774909 的回复:] 用@query是不好实现的,而且你这写的不通用,用jap的getBaseDao().findAll(getSpecification(spec));这个方法,拼接条件可以实现
引用 2 楼 sinat_37774909 的回复:用@query是不好实现的,而且你这写的不通用,用jap的getBaseDao().findAll(getSpecification(spec));这个方法,拼接条件可以实现,这个sql比较复杂关联了5张表还有子查询,用jpa的方式实现不了,用自定义的好写一些
用@query是不好实现的,而且你这写的不通用,用jap的getBaseDao().findAll(getSpecification(spec));这个方法,拼接条件可以实现
81,094
社区成员
341,711
社区内容
加载中
试试用AI创作助手写篇文章吧