hibernate - 使用 hibernate 加载的现实生活场景未得到

标签 hibernate

我知道hibernate中getload方法之间的区别。但无法理解现实生活中我可以使用 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/

相关文章:

java - org.hibernate.exception.JDBCConnectionException : Could not open connection exception in MySQL

java - JPA persistence.xml 和 MySQL - 未采用正确的 "hibernate.connection.url"目录

java - jpa @version 乐观锁定

java - JPA @Column 注释 getter 不起作用

hibernate - 从 grails 域的属性中获取数据库列名

java - 测试 spring hibernate dao 和服务层

java - 缺少具有 EmbeddedId 的实体的默认构造函数

hibernate - Spring Boot/JPA/Hibernate,如何根据Spring配置文件切换数据库供应商?

hibernate - Grails 和后台任务

java - 防止 ehcache 在启动时尝试访问互联网