zoukankan      html  css  js  c++  java
  • JPA学习之自定义简单查询和JPQL

    自定义简单查询

    概念:根据方法名自动生成SQL。

    语法主要的语法是findXXBy,readAXXBy,queryXXBy,countXXBygetXXBy后面跟属性名称

    User findByUserName(String userName);

    复习:SQL中的别名

    a.为表取别名

    SELECT * FROM USER AS u WHERE u.password='pwd2'

    AS可以省略。

    b.为字段取别名

    SELECT email AS 邮箱,user_name AS NAME FROM USER

    JPQL的使用

    SELECT的语法

    select 实体别名.属性名, 实体别名.属性名 from 实体名 as 实体别名 where 实体别名.实体属性 op 比较值

    举例:

    select p.name from book as p 

     LIke的用法

    目标:查找密码以23开头的数据

    从数据库中

    使用原始SQL

    SELECT * FROM USER WHERE PASSWORD LIKE '23%'

    得到结果

     方法名自动生成SQL

    List<User> findByPasswordStartingWith(String pwd);

    使用JPQL

        @Transactional
        @Query("select u from User u where u.password like ?1%")
        List<User> like(String like);
    
    //或者
        @Transactional
        @Query("select u from User u where u.password like ?1||'%'")
        List<User> like(String like);

    Controller中

        @GetMapping("/likePwd")
        public List<User> likePWd(@RequestParam(required = true) String pwd) {
            return userRepository.like(pwd);

    另类方法

    JPQL语句中不加%,

    Controller处理的时候加上%

  • 相关阅读:
    Codeforces 977F
    Codeforces 219C
    Codeforces 1132
    Codeforces 660C
    Codeforces 603A
    Codeforces 777C
    Codeforces 677
    JNUOJ 1032
    Codeforces 677D
    Codeforces 835C
  • 原文地址:https://www.cnblogs.com/legion/p/10077098.html
Copyright © 2011-2022 走看看