在 Criteria 中使用 Select 和 where 语句

Using Select and where statement in Criteria

我正在将我的 Web 应用程序中的 jdbc 替换为休眠。我了解到我不必在其中编写任何 SQL 查询。相反,条件查询可以帮助我。 这些是我的 SQL 查询,我想使用标准而不是 HQL 将其转换为休眠。

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 = ?;");

首先,您必须将 table 映射到 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();

您的第二个 select 查询也与前面相同。

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();

希望对你有所帮助。