一 单条件查询
1.1 创建dao接口
package com.bjsxt.dao;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import com.bjsxt.pojo.Users;
/**
* JpaSpecificationExecutor<Users>:不能单独使用,需要配合jpa中的其他接口一起使用
* @author guozi
*
*/
public interface UserDaoJpaSpecifictionExecutor extends JpaRepository<Users, Long>, JpaSpecificationExecutor<Users>{
}
1.2 创建测试类
package com.bjsxt.dao;
import java.util.List;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import com.bjsxt.pojo.Users;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class UserDaoJpaSpecifictionExecutorTest {
@Autowired
private UserDaoJpaSpecifictionExecutor userDaoJpaSpecifictionExecutor;
/**
* Hibernate: select users0_.id as id1_0_, users0_.age as age2_0_, users0_.user_name as user_nam3_0_ from ts_users users0_ where users0_.user_name=?
Users(id=5, userName=路飞-海贼王, age=18)
*/
@Test
public void testFindAllSpecificationOfT() {
Specifica