1. 程式人生 > >jpa的相關操作(單表)

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> { //使用佔位符來進行資料庫查詢 @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); //使用引數來進行查詢 @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); }