我知道hibernate中get
和load
方法之间的区别。但无法理解现实生活中我可以使用 load 方法而不是 get 方法的场景。
请给出一个使用 hibernate load 方法而不是 get 方法的真实场景。
最佳答案
您想要设置产品的类别。因此,您有一个列出类别的页面,允许选择一个类别并发布表单。
发布表单包括调用以下方法:
public void setProductCategory(Long productId, Long categoryId)
这个方法必须获取产品来修改它,并获取类别的引用,以便能够调用
product.setCategory(category);
但是您真的需要加载类别的数据才能做到这一点吗?您已经有了它的 ID,这应该足以获取对相应类别的引用,而无需实际从数据库中获取该类别的所有数据。毕竟,Hibernate 所要做的就是填充数据库中产品行的category_id 列,并且您已经知道类别的 ID,因此无需加载其余类别数据。
这就是 load()
方便的地方:它可以让您获得对持久对象的引用,而无需实际加载对象的数据:
Product product = (Product) session.get(Product.class, productId);
Category category = (Category) session.load(Category.class, categoryId);
product.setCategory(category);
关于hibernate - 使用 hibernate 加载的现实生活场景未得到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32293626/