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处理的时候加上%

  • 相关阅读:
    nginx
    同步和异步
    什么是ACID
    关系型数据库特点小结
    js 简单小知识
    join 和 left join 和 right join的区别?
    mysql中having和where区别?
    include和require区别
    什么是脏读,不可重复,幻读?
    Mysql常见面试题
  • 原文地址:https://www.cnblogs.com/legion/p/10077098.html
Copyright © 2011-2022 走看看