• 自定义查询


    有时候框架提供的不一定够我们使用,那么就需要我们进行自定义查询,这里我使用@Query注解的形式来完成,当然也可以通过在Entry上面用@NamedQuery注解具体的sql和对应的方法。
    在UserDao中添加两个方法,如下:

    @Query(value="select * from t_user u where u.username=?1",nativeQuery=true)  
    public User findByusername(String username);  
      
    @Query("select u from User u where u.password=:password")  
    public User findByPassword(@Param("password") String password); 
    
    第一个方法通过注解值nativeQuery=true说明这个是一个原生的sql语句查询,当然结果会自动帮我们进行转换,是不是很方便?对于参数赋值,可以通过?占位符,这个的话,就需要注意参数的位置,也可以通过:的形式,这个就需要@Param注解来定义。
    分别执行这两个方法,我们查看log信息:
    
    Hibernate:   
        select  
            *   
        from  
            t_user u   
        where  
            u.username=?  
    id:2   username:Jack  password:5555  
    Hibernate:   
        select  
            user0_.id as id0_,  
            user0_.password as password0_,  
            user0_.username as username0_   
        from  
            t_user user0_   
        where  
            user0_.password=? limit ?  
    id:2   username:Jack  password:5555 
    
    可以看到原生sql和生成的语句区别。
    
  • 相关阅读:
    L1-012 计算指数
    L1-011 A-B
    L1-010 比较大小
    Django--登录
    Django--跨域设置
    Django--视图装饰器
    Django--URL配置
    Django--多数据库
    Django--channels
    Django--日志
  • 原文地址:https://www.cnblogs.com/quickcodes/p/zi-ding-yi-cha-xun.html
Copyright © 2020-2023  润新知