利用jpql模糊查询和准确查询数据库service方法
//select
@SuppressWarnings("unchecked")
public synchronized List<Proxy> selectProxy(ProxyRequest proxyRequest){
StringBuilder jpql=new StringBuilder().append(" from Proxy p where 1=1");
if(proxyRequest.getIpaddr()!=null&&proxyRequest.getIpaddr().equals("")==false){
jpql.append(" and p.ipaddr like :ipaddr");
}
if(proxyRequest.getPort()!=null&&proxyRequest.getPort().equals("")==false){
jpql.append(" and p.port='"+proxyRequest.getPort()+"'");
}
if(proxyRequest.getStatus()==1){
jpql.append(" and p.status=1");
}
if(proxyRequest.getStatus()==0){
jpql.append(" and p.status=0");
}
logger.debug("jpql is "+jpql.toString());
Query query = entityManager.createQuery(jpql.toString());
if(proxyRequest.getIpaddr()!=null&&proxyRequest.getIpaddr().equals("")==false){
query.setParameter("ipaddr", "%" + proxyRequest.getIpaddr() + "%");
}
List<Proxy> proxyList=query.getResultList();
return proxyList;
}