我有一个包含20列的表。现在我想只更新三列。有没有办法在不使用命名查询的情况下执行相同的操作,因为记录的数量太大而需要更新的列在每个记录中具有不同的值。
答案 0 :(得分:0)
只是要明白,如果你只需要更新几列,那么为什么要使用merge,只需在DAO层中设置那些字段。
@Entity
class Employee{
private String name;
private String id;
private String salary;
// getter setter
}
在您的DAO图层中,您可以执行以下操作。
Employee emp = (Employee)session.get(Employee.class,id);
emp.setName("test");
在交易结束时,它将自动刷新,无需使用merge()。