Vla*_*mir 10 select hibernate insert
我有一个产品对象属于某些类别,即经典的多对一关系.
@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或直接查询.
Chs*_*y76 10
session.load()专门针对这样的情况而存在.下列:
Category category = session.load(categoryId);
product.setCategory(category);
Run Code Online (Sandbox Code Playgroud)
不会打到数据库.但是,如果没有给定id的类别,它将在稍后阶段(在刷新期间或多或少)抛出异常.
使用load()
比merge()
没有副作用更快(没有副作用......)
归档时间: |
|
查看次数: |
10606 次 |
最近记录: |