sri*_*har 4 java orm dao hibernate sql-update
对于此更新查询
update TestDB.dbo.MyEmp set empname=? where empid=?
Run Code Online (Sandbox Code Playgroud)
我在我的 DAO 课上写的
MyEmployee myEmployee = new MyEmployee();
MyEmployee myEmployee =(MyEmployee )session.load(MyEmployee.class,
new Integer(1700));
myEmployee.setName("updatedName");
session.update(myEmployee );
Run Code Online (Sandbox Code Playgroud)
它工作正常,但我需要知道下面提到的这种类型的更新查询
update TestDB.dbo.MyEmp set empsalary=? where empid=? && empname = ?
Run Code Online (Sandbox Code Playgroud)
(即,我需要通过在 where 子句中使用两个条件来更新表,这可以通过 HQL 来完成,但我想知道我们如何使用 saveOrUpdate 方法来实现这一点..)
如何使用 update 或 saveOrUpdate 方法()进行更新?在休眠中是否可以这样做?
您必须首先通过两种方式获取您的对象:
1- HQL
Query query = session.createQuery("from MyEmployee e where e.id = ? and e.name = ?");
query.setParameter(0, 1);
query.setParameter(1, "myName");
MyEmployee e = (MyEmployee) query.uniqueResult();
e.setSalary(5000);
session.saveOrUpdate(e);
Run Code Online (Sandbox Code Playgroud)
2- 标准
Criteria criteria = session.createCriteria(MyEmployee.class);
criteria.add(Restrictionss.eq("id", 1)).add(Restrictions.eq("name", "myName");
MyEmployee e = (MyEmployee) criteria.uniqueResult();
e.setSalary(5000);
session.saveOrUpdate(e);
Run Code Online (Sandbox Code Playgroud)
顺便说一下,在默认刷新模式下,当您获取对象并更新它时,它将在会话结束时自动持久化(如果您没有使用 StatelessSession)。
| 归档时间: |
|
| 查看次数: |
7819 次 |
| 最近记录: |