在Criteria中使用Select和where语句

Chi*_*iya 2 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 = ?;");
Run Code Online (Sandbox Code Playgroud)

Afs*_*dli 5

首先,你必须映射你的表POJOS.

String getOrgIdQuery = "SELECT * FROM USER_DETAILS WHERE USER_ID= ?";
Run Code Online (Sandbox Code Playgroud)

前面的代码Hibernate如下所示.

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

您的第二个选择查询也与前一个相同.

String insertCreateCdcValuesFirst = ("UPDATE User_Details SET User_Name=?, Organization_ID=?, Department_ID=?, Access_Ctrl = ?, User_Role=? WHERE User_ID = ?;");
Run Code Online (Sandbox Code Playgroud)

随着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();
Run Code Online (Sandbox Code Playgroud)

我希望这对你有帮助.