有人可以帮助我,或者指出正确的方向将我的DAO实现中的HQL查询更改为Hibernate标准? 我使用的是spring mvc,这里是代码:
package cl.cbrtemuco.autoconsultas.dao;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.query.Query;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import cl.cbrtemuco.autoconsultas.entity.Titulos;
@Repository
public class TitulosDAOImpl implements TitulosDAO {
@Autowired
SessionFactory sessionFactory;
@Override
public List<Titulos> searchTitulosByRazonSocial(String rSocial) {
Session currentSession = sessionFactory.getCurrentSession();
Query<Titulos> theQuery = currentSession.createQuery("from Titulos where RazonSocial like :rSocial",
Titulos.class);
theQuery.setParameter("rSocial", "%" + rSocial.toLowerCase() + "%");
List<Titulos> titulosEncontrados = theQuery.getResultList();
return titulosEncontrados;
}
@Override
public Titulos getTituloRSoc(int idTit) {
Session currentSession = sessionFactory.getCurrentSession();
Titulos datTituloRSoc = currentSession.get(Titulos.class, idTit);
return datTituloRSoc;
}
@Override
public Titulos getTituloNombre(int idTit) {
Session currentSession = sessionFactory.getCurrentSession();
Titulos datTituloNombre = currentSession.get(Titulos.class, idTit);
return datTituloNombre;
}
@Override
public List<Titulos> searchTitulosByNombre(String apPaterno, String apMaterno, String nombres) {
Session currentSession = sessionFactory.getCurrentSession();
Query<Titulos> theQuery = currentSession.createQuery(
"from Titulos where ApellidoPaterno like :apPaterno or ApellidoMaterno like :apMaterno or Nombres like :nombres", Titulos.class);
theQuery.setParameter("apPaterno", "%"+apPaterno.toLowerCase()+"%")
.setParameter("apMaterno", "%"+apMaterno.toLowerCase()+"%")
.setParameter("nombres", "%"+nombres.toLowerCase()+"%");
List<Titulos> titulosEncontradosNombre = theQuery.getResultList();
return titulosEncontradosNombre;
}
}
我提前谢谢你!! 谢谢!!!
答案 0 :(得分:0)
试试这样:
@Override
public List<Titulos> searchTitulosByRazonSocial(String rSocial) {
Session currentSession = sessionFactory.getCurrentSession();
Criteria c = currentSession.createCriteria(Titulos.class);
c.add(Restrictions.like("RazonSocial", "%" + rSocial.toLowerCase() + "%"));
List<Titulos> titulosEncontrados = (List<Titulos>)c.list();
return titulosEncontrados;
}
@Override
public List<Titulos> searchTitulosByNombre(String apPaterno, String apMaterno, String nombres) {
Session currentSession = sessionFactory.getCurrentSession();
Criteria c = currentSession.createCriteria(Titulos.class);
Criterion or = Restrictions.or(
Restrictions.like("ApellidoPaterno", "%"+apPaterno.toLowerCase()+"%"),
Restrictions.like("ApellidoMaterno", "%"+apMaterno.toLowerCase()+"%")
);
Criterion or2 = Restrictions.or(
or,
Restrictions.like("ApellidoMaterno", "%"+apMaterno.toLowerCase()+"%"));
c.add(or2);
List<Titulos> titulosEncontradosNombre = (List<Titulos>)c.list();
return titulosEncontradosNombre;
}