jpa的相關操作(單表)

package com.example.demo.mapper.user;

import com.example.demo.entity.user.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.CrudRepository;
import org.springframework.data.repository.Repository;

import java.util.List;

/**
 * Create with IntelliJ IDEA.
 *
 * @author: [email protected]
 * Date: 2018/9/17
 * Time: 20:23
 */
@Mapper
public interface UserRepository extends JpaRepository<User, Integer>, Repository<User, Integer>
        , CrudRepository<User, Integer> {

    //使用佔位符來進行數據庫查詢 :?1 ?2 參數依次遞增
    @Query("select o.name,o.age,o.address  from User o where o.name=?1 and o.age=?2")
    List<User> queryUser(String name, Integer age);

    //使用參數來進行查詢 : o.name=:name;o.age=:age需要和註解@Param共同使用
    @Query("select  o.name,o.age,o.address  from User o where o.name=:name and o.age=:age")
    List<User> queryUserAddress(@org.springframework.data.repository.query.Param("name") String name, @org.springframework.data.repository.query.Param("age") Integer age);

    // LIKE的使用 :使用佔位符來進行數據庫查詢
    @Query("select o.name,o.age,o.address  from User o where o.name like %?1% and o.age =?2")
    List<User> queryUserTestLike(String name, Integer age);

    //LIKE的使用 :使用參數來進行數據庫查詢
    @Query("select o.name,o.age,o.address  from User o where o.name like %:name% and o.age =:age")
    List<User> queryUserTestLike2(@org.springframework.data.repository.query.Param("name") String name, @org.springframework.data.repository.query.Param("age") Integer age);

    //支持原生的本地數據庫查詢
    @Query(nativeQuery = true, value = "SELECT count(1) FROM USER ")
    Integer findCountUser();

    //jpa整合事務操作,  @Modifying 與@Query 要共同使用需要在進行增加和修改操作時進行事務操作,需要在service中添加 @Transactional
    @Modifying
    @Query("update User o set o.age =:age where o.id =:id")
    void updateUser(@org.springframework.data.repository.query.Param("id") Integer id, @org.springframework.data.repository.query.Param("age") Integer age);
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章