一个使用hibernate加载的真实场景

一个使用hibernate加载的真实场景,hibernate,Hibernate,我知道hibernate中get和load方法的区别。但我无法理解现实生活中我可以使用load方法而不是get方法的场景 请给出一个使用hibernate加载方法而不是get方法的真实场景。您想设置产品的类别。因此,您有一个页面列出类别,允许选择一个类别,并发布表单 过账表单包括调用以下方法: public void setProductCategory(Long productId, Long categoryId) 此方法必须获取要修改的产品,并获取对类别的引用,以便能够调用 produc

我知道hibernate中
get
load
方法的区别。但我无法理解现实生活中我可以使用load方法而不是get方法的场景


请给出一个使用hibernate加载方法而不是get方法的真实场景。

您想设置产品的类别。因此,您有一个页面列出类别,允许选择一个类别,并发布表单

过账表单包括调用以下方法:

public void setProductCategory(Long productId, Long categoryId)
此方法必须获取要修改的产品,并获取对类别的引用,以便能够调用

product.setCategory(category);
但是,您真的需要加载类别的数据才能做到这一点吗?您已经有了它的ID,这应该足以获得对相应类别的引用,而不需要实际从te数据库获取该类别的所有数据。毕竟,Hibernate所要做的就是在数据库中填充产品行的category_id列,并且您已经知道该类别的id,因此不需要加载其余的类别数据

这就是
load()
很方便的地方:它让您在不实际加载对象数据的情况下获得对持久对象的引用:

Product product = (Product) session.get(Product.class, productId);
Category category = (Category) session.load(Category.class, categoryId);
product.setCategory(category);