使用hibernate负载的真实场景

时间:2015-08-30 05:49:45

标签: hibernate

我知道hibernate中getload方法之间的差异。但是无法理解我可以使用load方法而不是get方法的真实场景。

请提供使用hibernate load方法的真实场景,而不是get方法。

1 个答案:

答案 0 :(得分:3)

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

发布表单包括调用以下方法:

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);