zoukankan      html  css  js  c++  java
  • Query注解及方法限制

     repository仓库图片

    public interface PersonRepository extends Repository<Person,Integer>{
     
    //根据lastName来获取对应的Person
    Person getByLastName(String lastName);
     
     
    //WHERE lastName LIKE ?% AND id < ?
    List<Person> getByLastNameStartingWithAndIdLessThan(String lastName,Integer id);
     
    //WHERE lastName LIKE %? AND id<?
    List<Person> getByLastNameEndingWithAndIdLessThan(String lastName,Integer id);
     
    //WHERE email IN(?,?,?) OR birth <?
    List<Person> getByEmailInOrBirthLessThan(List<String> emails,Date birth);
     
    //WHERE a.id>?
        List<Person> getByAddressIdCreaterThan(Integer id);
     //getByAddress_IdCreaterThan(Integer id);
      
        //查询id值最大的那个Person
        //使用@Query注解可以自定义JPQL语句以实现更灵活的查询
        @Query("SELECT p FROM Person p WHERE p.id=(SELECT max(p.id) FROM Person p2)")
        Person getMaxIdPerson();
        
        //1.@Query注解传递参数的方式1,使用占位符
        @Query("SELECT p FROM Person p WHERE p.lastName=?1 AND p,email =?2")
        List<Person> testQueryAnnotationParam1(String lastName,String email);
        
        //2.位Query注解传递参数的方式2:命名参数的方式
        @Query("SELECT p FROM Person p WHERE p.lastName= :lastName AND p.email=:email")
        List<Person> testQueryAnnotationParams2(@Param("email")String email,@Param("lastName")String lastName);
            //SpringData 允许在占位符上添加 %%. 
    @Query("SELECT p FROM Person p WHERE p.lastName LIKE %?1% OR p.email LIKE %?2%")
    List<Person> testQueryAnnotationLikeParam(String lastName, String email);
     
    //SpringData 允许在占位符上添加 %%. 
    @Query("SELECT p FROM Person p WHERE p.lastName LIKE %:lastName% OR p.email LIKE %:email%")
    List<Person> testQueryAnnotationLikeParam2(@Param("email") String email, @Param("lastName") String lastName);
     
    //设置 nativeQuery=true 即可以使用原生的 SQL 查询
    @Query(value="SELECT count(id) FROM jpa_persons", nativeQuery=true)
    long getTotalCount();
    }
  • 相关阅读:
    什么是Service Mesh
    SQL Server 创建索引(index)
    RocketMQ在面试中那些常见问题及答案+汇总
    怎样用通俗的语言解释REST,以及RESTful?
    RPC和RestFul的区别是什么?
    Java 动态字节码生成技术 javassist
    热加载如此简单,手动写一个 Java 热加载
    Dubbo源码分析(十)同步调用与异步调用
    Dubbo源码分析(九)负载均衡算法
    Dubbo源码分析(八)集群容错机制
  • 原文地址:https://www.cnblogs.com/MAPO/p/8516836.html
Copyright © 2011-2022 走看看