jpa的相關操作(單表)
阿新 • • 發佈:2018-12-10
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); }