Spring Data 의 5 가지 조회 방식

import java.util.List;
import java.util.concurrent.Future;

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.query.Param;
import org.springframework.scheduling.annotation.Async;
import org.springframework.transaction.annotation.Transactional;

import com.my.domain.User;
/**
 *   DAO      @Repository  
 * Spring        CrudRepository          
 * @author WANBGBOWE
 *
 */
public interface UserRepository extends CrudRepository<User, Integer> {

	//        :fin 、findBy、read 
	public User findByName(String name);
	public List<User> findByNameAndAge(String name,String age);
	//      JQL:where age<?1
	public List<User> findByAgeLessThan(String age);
	//      JQL:where age>?1
	public List<User> findByAgeGreaterThan(String age);
	//is null    JQL:where age is null
	public List<User> findByAgeIsNull(String age);
	//like    JQL:where age like ?1
	public List<User> findByAgeLike(String age);
	
	//  @Query  
	@Query("select u from User u")
	public List<User> getUser();
	
	//       :     
	@Transactional
	@Modifying//    ,   
	@Query("update User u set u.name=:name where u.age =:age ")
	public int updateUserByAge(@Param("name")String name,@Param("age")String age);
	
	//       :   
	@Transactional //     ,        ,        
	@Modifying//    ,   
	@Query("update User u set u.name=?1,u.sex=?2 where u.age =?3 ")
	public int updateUserByAge(String name,String sex ,String age);
	
	//                   
	@Modifying
	@Query(value="select u.* from user u where u.name like %?1",nativeQuery=true)
	public List<User> selctUserByNative(String name);
	
	//               
	@Async
	public Future<User> findByAge(String age);

좋은 웹페이지 즐겨찾기