Spring Data Jpa 查询
来源:互联网 发布:磁铁车牌号码贴 淘宝 编辑:程序博客网 时间:2024/05/22 04:47
1.查询关键字
限制结果数量可以使用top first关键字
findFirst10ByName() findTop10ByName() 皆为查询前10条数据
2.@NamedQuery查询
此注解用于标识类(特指带@Entity的实体类),执行的jpql语句
@NamedQueries({ @NamedQuery(name="Adminuser.findByName",query="select * from Adminuser where name=?1 "), @NamedQuery(name="Adminuser.findByCcc",query="select * from Adminuser where name=?1 "), @NamedQuery(name="Adminuser.findByBbb",query="select * from Adminuser where name=?1 ")})public class Adminuser implements Serializable {}
前三个方法将会调用AdminUser类上标识的@NamedQuery方法进行查询 findByLoginId将使用关键字拼接进行查询
@Repositorypublic interface AdminUserRepository extends JpaRepository<Adminuser,String>,JpaSpecificationExecutor<Adminuser>{ Adminuser findByName(String loginId); Adminuser findByCcc(String loginId); Adminuser findByBbb(String loginId); Adminuser findByLoginId(String loginId);}
3.@NamedNativeQueries
执行多组原生SQL
@NamedNativeQueries({ @NamedNativeQuery(name = "countGroup", query = "SELECT g.`C_GROUP_ID` id,g.`C_NAME` name,COUNT(m.N_ID) count FROM `t_wx_group` g LEFT JOIN `t_wx_material` m ON g.`C_GROUP_ID`=m.`C_GROUP_ID` WHERE g.`C_TYPE`=?1 GROUP BY g.`C_GROUP_ID` ORDER BY g.`N_ID` ", resultSetMapping = "returnMap") })@SqlResultSetMappings({ @javax.persistence.SqlResultSetMapping(name = "returnMap", classes = {@ConstructorResult(targetClass = GroupVO.class, columns = { @ColumnResult(name = "id", type = String.class), @ColumnResult(name = "name", type = String.class), @ColumnResult(name = "count", type = Integer.class) }) }), })public class Group implements Serializable {}
resultSetMapping表示结果集映射,使用@SqlResultSetMappings来填充;此处表示将结果集封装成GroupVO对象,
@ConstructorResult表示使用的构造器,即此处为 new GroupVO(id,name,count)
还有可选为@EntityResult 即返回一个带@Entity注解的实体,实体所有属性必须存在,否则报错
@ColumnResult即只返回结果集,Object[] ;spring data jpa默认查询返回就是Object[] List
@Query("select from Adminuser where loginId = ?1 ") Adminuser findByLoginId(String loginId); @Query(value="delete from t_role_user where c_userid = ?1 ",nativeQuery=true) @Modifying void delRole(String uId); @Query(name="countGroup") List<GroupVO> countGroup(String type); @Query(value=" UPDATE `t_wx_material` SET C_GROUP_ID=:gid WHERE C_MID in(:mids) ",nativeQuery=true) @Modifying void updateGroup(@Param(value = "mids") List<String> mids,@Param(value = "gid") String gid);
默认使用JPQL进行查询,nativeQuery=true表示使用原生sql进行查询,当sql操作为更新操作(增删改)时,需要加入@Modifying标注(因为事务默认是只读的)
执行某个定义好的NamedNativeQuerie NamedQuery,当没有name属性时,默认寻找此Repository对应的实体里与方法名对应的数据 即类似上面的Adminuser.findByName
@Param表示查询里的占位参数名,如果对同一个参数有多个值时,使用List,使用数组将无效
- Spring Data JPA 查询
- Spring Data Jpa 查询
- spring data jpa 分页查询
- Spring Data JPA查询关键字
- spring data jpa 构建查询
- Spring Data JPA 动态查询
- spring data jpa分页查询
- Spring Data JPA动态查询
- SPRING DATA JPA 查询关键字
- Spring Data JPA Specification查询
- Spring Data JPA 实例查询
- spring data jpa 分页查询
- Spring Data JPA 自定义查询
- Spring jpa data多条件分页查询
- Spring Data Jpa自定义sql查询返回
- Spring Data Jpa 自定义属性查询规则
- spring data jpa 利用@Query进行查询
- spring-data-jpa Specification 拼接复杂查询
- Github 简明教程
- MVC的配置
- Windows安装mysql-5.7.17-winx64.zip方式
- SPOJ - COLONY B - Linearian Colony 二分
- spring aop原理(动态代理)
- Spring Data Jpa 查询
- kmeans(最简单的机器学习算法)
- (草稿)WEB服务器、应用程序服务器、HTTP服务器
- Java过滤器与SpringMVC拦截器之间的关系与区别
- HDU How many prime numbers
- 2017喽
- springmvc使用hibernate-validator校验框架实现后端校验
- PL/SQL,经常会遇见“Could not load "……\bin\oci.dll"”这个错误
- Netty权威指南 第2版学习笔记1——Java的I/O演进之路