【问题标题】:Select query in hibernate annotations in spring mvc在spring mvc的hibernate注释中选择查询
【发布时间】:2014-07-11 04:17:27
【问题描述】:
嗨,我正在编写一个 spring mvc,使用 mysql 数据库、hibernate 注释和 jsp 的员工应用程序。该数据库包含一个表“Empdata”,其中empid是主键。并且在“Empdata”中有一个列“team”。我想要选择特定团队中的员工,例如“Team1”中员工的所有详细信息。在这里我可以在应用程序中执行删除和编辑操作。对于删除操作,我正在使用
sessionfactory.getCurrentSession().createQuery("DELETE FROM Resource WHERE empid=" +resource.getEmpId()).executeUpdate();
查询。我知道 select 的命令行查询是
SELECT * FROM EmpData ERE EMPLTEAM ="Team1"
我想知道如何将此查询转换为休眠状态。
请帮忙,提前谢谢..
【问题讨论】:
标签:
mysql
hibernate
jakarta-ee
spring-mvc
【解决方案1】:
例如
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");
【解决方案2】:
您可以通过以下方式转换查询:
String sql = "select ed from EmpData ed where emplTeam = :emplTeam";
Query query = session.createQuery(sql);
query.setParameter("emplTeam ", team);
List<EmpData> empDataList = (List<EmpData>)query.list();
但您应该有一个名为 EmpData 的类,其中包含类似于以下内容的属性 emplTeam:
@Entity
@Table(name = "EmpData")
class EmpData {
....
@Column(name = "EMPLTEAM")
private String emplTeam;
public String getEmplTeam() {
return emplTeam;
}
public void setEmplTeam(String emplTeam) {
this.emplTeam = emplTeam;
}
}
(我使用注解 hibernate .. 但您可以使用相同的方式使用 .hbm.xml 文件)