我有一个产品对象属于某些类别,即经典的多对一关系.
@Entity
public class Product{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
Long id;
String name;
Double price;
@ManyToOne(fetch = FetchType.LAZY)
Category category;
...
}
@Entity
public class Category implements Identifiable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String name;
...
}
Run Code Online (Sandbox Code Playgroud)
我想在不预先选择类别的情况下插入和更新产品.像这样:
Product product = dao.get(productId);
Category category = dao.get(categoryId);
product.setCategory(category);
dao.update(product);
Run Code Online (Sandbox Code Playgroud)
要么
Product product = new Product(somename);
Category category = dao.get(categoryId);
product.setCategory(category);
dao.insert(product);
Run Code Online (Sandbox Code Playgroud)
是否可以在没有类别选择的情况下更新和插入?我不想使用HQL或直接查询.
对于此更新查询
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 方法()进行更新?在休眠中是否可以这样做?