Spring Data JPA @Query

来源:互联网 发布:lofter绑定独立域名 编辑:程序博客网 时间:2024/05/23 12:12

在DAO层 使用@Query注解

定义实体类Person

public  class Person{    private Long id;     private String name;}

在DAO层 用@Query注解做查询(sql原生语句查询)
@Query 默认是按对象查询,nativeQuery = true:按sql原生语句查询

import org.springframework.data.jpa.repository.Query;import org.springframework.data.repository.query.Param;public interface PersonRepository extends  JpaRepository<Person, Long>, JpaSpecificationExecutor<Person> {    @Query(value = "SELECT * from t_person where id=:id and name  like :name", nativeQuery = true)    Object[] findOnePerson(@Param("id") Long id, @Param("name") String name);}

在DAO层 用@Query注解做查询(按对象查询)

import org.springframework.data.jpa.repository.Query;import org.springframework.data.repository.query.Param;public interface PersonRepository extends  JpaRepository<Person, Long>, JpaSpecificationExecutor<Person> {    @Query("SELECT * from Person where id=:id and name  like :name")    Object[] findOnePerson(@Param("id") Long id, @Param("name") String name);}

增删改操作 需用要@Modifying注解

import org.springframework.data.jpa.repository.Modifying;import org.springframework.data.jpa.repository.Query;import org.springframework.data.repository.query.Param;public interface CheckDetailRepository extends  JpaRepository<Person, Long>, JpaSpecificationExecutor<Person> {    @Modifying    @Query("update Person set name = :name where id = :id")    Object[] updatePerson(@Param("id") Long id, @Param("name") String name);}
原创粉丝点击