在 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 语句的主要内容,如果未能解决你的问题,请参考以下文章

Yii criteria操作方法集合

Criteria Builder 在 Select 语句中创建新对象

如何使用 mongoDB 条件查询在 java 中获得更干净的代码 [重复]

mybits使用criteria 进行or查询

Hibernate 入门----Query,Criteria,SQLQuery

mybatis 使用criteria 查询xx and ( xx or xx)形式的sql