用户登录
用户注册

分享至

hibernate 5.2 dao

  • 作者: 听说段子很搞笑
  • 来源: 51数据库
  • 2021-01-22
用hibernate的自动生成的的dao:
Java code
List results = getSession()
.createCriteria("com.anbo.lzy.TableTerm").add(
Example.create(instance)).list();
log.debug("find by example successful, result size: "
+ results.size());
return results;
} catch (RuntimeException re) {
log.error("find by example failed", re);
throw re;
}
}

把这个改为你对应的实体类:TableTerm instance 就是User
List results = getSession()
.createCriteria("com.anbo.lzy.TableTerm").add(
Example.create(instance)).list();

这就话改下,改为:
List result=getSession().createQuery("select user from User").list();
将result 保存到request中,跳转到页面 用EL表达式显示即可!



  刚好在写这个,举个例子给你参考参考:
现有Student类和Teacher类,Student和Teacher是多对一的关系,Student 类中会有一个Teacher的变量。现在通过Student来查询对应Teacher的Name属性:
部分代码:
String hql="from Student s where s.name= 'xmuchen'";
//hql语句搜索Student表
List list=studentDAO.findBy(hql);
//结果存到list中
if(list.size()>0)
Student student= (Student)list.get(0);
//不为空的话取list的第一值
teacherName=student.getTeacher.getTeacherName();
//通过student获得Teacher的Name属性。

我用的就是这种,其他更好的方法暂时就不知道了。



  在HQL上写好即可

例如有AB两个bean,A中有一属性为b(B);那么多表查询的hql即为

FROM A AS a JOIN a.b ....

即可!
软件
前端设计
程序设计
Java相关