在spring mvc中选择spring hibernate中的查询

Posted

技术标签:

【中文标题】在spring mvc中选择spring hibernate中的查询【英文标题】:Select query in spring hibernate in spring mvc 【发布时间】:2014-07-11 09:36:27 【问题描述】:

嗨,我正在编写一个 spring mvc,使用 mysql 数据库、hibernate 注释和 jsp 的员工应用程序。该数据库包含一个表“Empdata”,其中empid是主键。并且在“Empdata”中有一个列“team”。我想要选择特定团队中的员工,例如“Team1”中员工的所有详细信息。在这里我可以在应用程序中执行删除和编辑操作。对于删除操作,我正在使用

sessionfactory.getCurrentSession().createQuery("DELETE FROM Resource WHERE empid=" +resource.getEmpId()).executeUpdate();

query.我知道 select 的命令行查询是

SELECT * FROM EmpData WHERE EMPLTEAM ="Team1"

我想知道如何将此查询转换为休眠?

请帮忙,提前谢谢..

【问题讨论】:

检查休眠查询语言 【参考方案1】:
Query query = session.createQuery("from Resource where emplteam = :team");
query.setParameter("team", "Team1");
List list = query.list();

emplteam 应该是您的类 Resource 的属性,而不是您的数据库列的名称。

【讨论】:

【参考方案2】:

我想使用 HQL 很简单。

String hql = "FROM Resource E WHERE E.emplteam = team1";
Query query = session.createQuery(hql);
List results = query.list();

希望对你有帮助

注意: SELECT 、 FROM 和 WHERE 等关键字不区分大小写,但 HQL 中的表名和列名等属性区分大小写。

【讨论】:

【参考方案3】:

您是否尝试过使用标准 api?

Criteria crit = sessionFactory.getCurrentSession()
   .createCriteria(EmpData.class).add(Restrictions.eq("EMPLTEAM", "teamxxx");

List<EmpData> result = crit.list();

【讨论】:

【参考方案4】:

例如

Query query = session.createQuery("from Student where name=:name");
query.setParameter("name", "Raj");

在您的情况下,我猜实体名称是 Empdata(代表表的对象) 并且对象中的字段是团队(对象中有getter和setter)

Query query = session.createQuery("from Empdata where team=:teamParam");
query.setParameter("teamParam", "team1");

【讨论】:

以上是关于在spring mvc中选择spring hibernate中的查询的主要内容,如果未能解决你的问题,请参考以下文章

环境配置——IDEA搭建maven+spring mvc开发环境

在MyEclipse中搭建Spring MVC开发环境

idea搭建ssm(Spring+Spring Mvc+Mybatis)

浅析Spring MVC的工作原理及其与Spring的关系

spring mvc 如何配置最简洁的

Spring MVC 中的验证