在Criteria中使用Select和where语句

时间:2015-05-15 06:19:18

标签: java mysql hibernate hibernate-criteria

我正在使用Web应用程序中的hibernate替换jdbc。我了解到我不必在此编写任何SQL查询。而不是这个,标准查询可以帮助我。 这些是我想要使用标准而不是HQL转换为hibernate的SQL查询。

String getOrgIdQuery = "SELECT * FROM USER_DETAILS WHERE USER_ID= ?";
rsDeptName = stmt.executeQuery("SELECT DEPARTMENT_NAME FROM DEPARTMENT WHERE DEPARTMENT_ID ="+ DeptID + ";");
String insertCreateCdcValuesFirst = ("UPDATE User_Details SET User_Name=?, Organization_ID=?, Department_ID=?, Access_Ctrl = ?, User_Role=? WHERE User_ID = ?;");

1 个答案:

答案 0 :(得分:5)

首先,您必须使用POJOS映射表格。

String getOrgIdQuery = "SELECT * FROM USER_DETAILS WHERE USER_ID= ?";

Hibernate中的代码前面的代码如下所示。

Criteria criteria = session.createCriteria(USER_DETAILS.class);
criteria.add(Restrictions.eq("user_id",yourUserId));
List<USER_DETAILS> list = criteria.list();

您的第二个选择查询也与之前相同。

String insertCreateCdcValuesFirst = ("UPDATE User_Details SET User_Name=?, Organization_ID=?, Department_ID=?, Access_Ctrl = ?, User_Role=? WHERE User_ID = ?;");

Hibernate Criteria更新如下所示:

USER_DETAILS user_details = (USER_DETAILES) session.get(USER_DETAILS.class,yourUserId);
user_details.setUser_Name(NewUserName);
user_details.setOrganization_Id(newOrganizationId);
// some other fields update goes here
session.update(user_details);
tx.commit();

我希望这对你有所帮助。