Spring data jpa HQL @Query 自定义查询及更新删除 及 sql写法
2017-05-09 08:43
1126 查看
spring 版本为4.1.3.RELEASE
一、常用 查询方法
@Query("select name from Reservation where beautyType = :beautyType AND time BETWEEN :startDate AND :endDate")
public List<Reservation> findReservations(@Param("startDate")Date startDate,@Param("endDate")Date endDate ,@Param("beautyType")String beautyType);
1、Reservation 为 java中对应的实体类,不是数据库表名。
2、 select 后面 不能跟* 号,应为实体类中属性。
写了个测试类在 主方法(main)中,去测试dao层方法。一直报UncaughtExceptionHandler (暂时不知道原因)
二、更新及删除
/**
* 更新是否可用标记
* @param id
* @param status
*/
@Modifying
@Query("update Corporation set usable = :usable where id = :id")
public void updateUsableFlag(@Param("id")Long id, @Param("usable")Boolean usable);
/**
* 删除
* @param id
* @param status
*/
@Modifying
@Query("delete from Corporation where id in (:ids)")
public void delete(@Param("ids")Long[] ids);
更新删除要有事务管理有问题请参考
三、排序问题
/**
*查询排序
*查询 字段usable为true按照sortNo字段排序ASC为顺序
*备注:字段sortNo与asc中无at,看到一篇博客中也有at被误导,可能是版本不同导致。
**/
findByUsableTrueOrderBySortNoAsc();
四、HQL与sql原生语句
没有将查询数据转为类而是Object[]的原因是 hql语句问题。两个写法
一、HQL写法
@Query(value="from LogToIndex group by elkIndex")
二、sql语法,加上nativeQuery=true
@Query(value="select * from log_index_data group by elkIndex",nativeQuery=true)
五、根据类中外键字段查询
dao.findByCorpCode_codeOrderByOrderBy(corpCode);
CorpCode:对应为类中的外键字段。
_code: 中的code为corpCode外键字段对应类的属性。
一、常用 查询方法
@Query("select name from Reservation where beautyType = :beautyType AND time BETWEEN :startDate AND :endDate")
public List<Reservation> findReservations(@Param("startDate")Date startDate,@Param("endDate")Date endDate ,@Param("beautyType")String beautyType);
1、Reservation 为 java中对应的实体类,不是数据库表名。
2、 select 后面 不能跟* 号,应为实体类中属性。
写了个测试类在 主方法(main)中,去测试dao层方法。一直报UncaughtExceptionHandler (暂时不知道原因)
二、更新及删除
/**
* 更新是否可用标记
* @param id
* @param status
*/
@Modifying
@Query("update Corporation set usable = :usable where id = :id")
public void updateUsableFlag(@Param("id")Long id, @Param("usable")Boolean usable);
/**
* 删除
* @param id
* @param status
*/
@Modifying
@Query("delete from Corporation where id in (:ids)")
public void delete(@Param("ids")Long[] ids);
更新删除要有事务管理有问题请参考
三、排序问题
/**
*查询排序
*查询 字段usable为true按照sortNo字段排序ASC为顺序
*备注:字段sortNo与asc中无at,看到一篇博客中也有at被误导,可能是版本不同导致。
**/
findByUsableTrueOrderBySortNoAsc();
四、HQL与sql原生语句
没有将查询数据转为类而是Object[]的原因是 hql语句问题。两个写法
一、HQL写法
@Query(value="from LogToIndex group by elkIndex")
二、sql语法,加上nativeQuery=true
@Query(value="select * from log_index_data group by elkIndex",nativeQuery=true)
五、根据类中外键字段查询
dao.findByCorpCode_codeOrderByOrderBy(corpCode);
CorpCode:对应为类中的外键字段。
_code: 中的code为corpCode外键字段对应类的属性。
相关文章推荐
- spring data jpa 自定义sql 左链接查询
- Spring data jpa 自定义SQL语句遇到错误Not supported for DML operations
- Spring Data JPA 自定义查询
- 【系统学习SpringBoot】再遇Spring Data JPA之JPA应用详解(自定义查询及复杂查询)
- spring data jpa 查询自定义字段,转换为自定义实体
- spring data jpa 自定义复杂sql语句(多个select嵌套) 并返回自定义对象
- 【Spring-data-jpa】利用@query组合查询
- spring data jpa 查询自定义字段,转换为自定义实体
- spring data jpa中@Query中的模糊查询 like 关键字
- spring data jpa 利用@Query进行查询
- spring data jpa中@Query中的模糊查询<like关键字>
- SqlDataReader查询,更新,删除并保持和数据库实时操作(转)
- spring data jpa 查询自定义字段,转换为自定义实体
- Spring boot data JPA 自定义JPQL语句,以及PagingAndSortingRepository接口实现分页查询
- Spring Data Jpa 使用@Query标注自定义查询语句
- jpa或bernate使用原生sql进行关联查询org.hibernate.hql.internal.ast.QuerySyntaxException: Path expected for join
- Spring Data jpa @query 关于IN关键字查询
- 使用SpringData JPAQL获取查询结果query.getResultList()读取后EntityManager会自动关闭
- Spring-Data-JPA 自定义查询方法底层如何处理
- Spring data jpa 自定义查询返回,用FastJson把Map转换为JavaBean