Hibernate Criteria 離線正則查詢
阿新 • • 發佈:2018-12-09
private static void query() {
Student student=new Student();
//建立離線正則物件
DetachedCriteria detachedCriteria=DetachedCriteria.forClass(Student.class);
//select name,age from t_student where sex='男'
detachedCriteria.setProjection(
Projections.projectionList ()
.add(Projections.property("name"))
.add(Projections.property("age"))
);
detachedCriteria.add(Restrictions.eq("sex", "男"));
Session session=HibernateUtils.getSession();
//根據離線正則傳遞session物件後返回正則物件
Criteria criteria=detachedCriteria.getExecutableCriteria (session);
List<Object[]> list=criteria.list();
for(Object[] objs:list){
System.out.println(Arrays.toString(objs));
}
}
Session session=HibernateUtils.getSession();
//當檢索結果不是實體時的用法
String sql="select name,age,sex from t_student where sex=?" ;
SQLQuery sqlQuery=session.createSQLQuery(sql);
sqlQuery.setString(0, "男");
List<Object[]> list=sqlQuery.list();
for(Object[] objs:list){
System.out.println(Arrays.toString(objs));
}
//將檢索結果是實體時
String sql="select id,name,age,sex,email from t_student where sex=?";
SQLQuery sqlQuery=session.createSQLQuery(sql);
sqlQuery.setString(0, "男");
//給sqlQuery關聯實體
sqlQuery.addEntity(Student.class);
List<Student> list=sqlQuery.list();
for(Student stu:list){
System.out.println(stu);
}