在 Criteria 中使用 Select 和 where 语句
Posted
技术标签:
【中文标题】在 Criteria 中使用 Select 和 where 语句【英文标题】:Using Select and where statement in Criteria 【发布时间】:2015-07-26 23:34:38 【问题描述】:我正在我的 Web 应用程序中将 jdbc 替换为 hibernate。我了解到我不必在其中编写任何 SQL 查询。而不是这个,标准查询可以帮助我。 这些是我想使用标准而不是 HQL 将其转换为休眠的 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 = ?;");
【问题讨论】:
Criteria
.docs.jboss.org/hibernate/orm/3.3/reference/en/html/…做起来不难
@AfsunKhammadli 你能告诉我查询..??我已经浏览了所有这些文件,但仍然无法弄清楚这一点..!!
好的,我将添加为答案
你的问题解决了吗?
是的..它确实解决了我的问题..!!非常感谢..:)
【参考方案1】:
首先,您必须使用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();
希望对你有所帮助。
【讨论】:
以上是关于在 Criteria 中使用 Select 和 where 语句的主要内容,如果未能解决你的问题,请参考以下文章
Criteria Builder 在 Select 语句中创建新对象
如何使用 mongoDB 条件查询在 java 中获得更干净的代码 [重复]