天天看點

spring boot自定義JPaRepository

/**
 * 
 */
package com.xyd.userDao;

import java.io.Serializable;

import org.springframework.data.repository.NoRepositoryBean;
import org.springframework.data.repository.PagingAndSortingRepository;

/**
 * @author admin
 *
 */
@NoRepositoryBean //指明不是自己私人的領域接口
//實作PagingAndSortingRepository接口,具備分頁和排序功能
public interface CustomRepository <T,ID extends Serializable> extends PagingAndSortingRepository<T, ID>{
//這裡可以寫自己定義的資料操作方法
}
           
/**
 * 
 */
package com.xyd.userDao.impl;

import java.io.Serializable;

import javax.persistence.EntityManager;

import org.springframework.data.jpa.repository.support.SimpleJpaRepository;

import com.xyd.userDao.CustomRepository;

/**
 * @author admin
 *實作自定義接口類
 */
public class CustomRepositoryImpl<T,ID extends Serializable> extends SimpleJpaRepository<T, ID> implements CustomRepository<T,ID>{

	private final EntityManager entityManager; 
	
	/**
	 * @param domainClass
	 * @param em
	 */
	public CustomRepositoryImpl(Class<T> domainClass, EntityManager em) {
		super(domainClass, em);
		this.entityManager = em;
	}

}
           

編寫userRepostory

public interface TestUserRep extends CustomRepository<User,Integer>{
	@Query("select u from User u where u.userName= :userName and u.email= :email")
	User findUser(@Param("userName")String userName,@Param("email")String email);
}
           

最後在controller裡可以使用

public class UserControler{

@AutoWired

TestUserRep userRep;

public User findUser(String userName,String email){

User user = userRep.finUser(userName,email);

}

}

繼續閱讀