当前位置: 首页 > 知识库问答 >
问题:

实体图不获取动态提供的关系

全鸿晖
2023-03-14

我试图使用spring JPA repository和entity graph加载实体的惰性属性,EntityGraph不是动态获取提供的关系,而是根据entity中为该属性定义的静态获取类型获取属性。

@Repository
@Transactional
public interface SampleRepository extends JpaRepository<Sample,Long> {

    @EntityGraph(attributePaths = {"oneToOneLazyRelation1","oneToOneLazyRelation2"})
    List<Sample> findAllByCustomer(Customer customer);

}

@Entity
public class Sample {

    @id
    private Long id;

    @OneToOne(cascade = CascadeType.ALL ,fetch=FetchType.LAZY)
    @LazyToOne(value = LazyToOneOption.NO_PROXY)
    @LazyGroup("oneToOneLazyRelation1")
    private OneToOneLazyRelation1 oneToOneLazyRelation1;
    
    @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
    @LazyToOne(value = LazyToOneOption.NO_PROXY)
    @LazyGroup("oneToOneLazyRelation2")
    private OneToOneLazyRelation2 oneToOneLazyRelation2;
}

使用hibernate-5.2.17.Final,Spring-4.3.20.RELEASE,Spring数据JPA-1.11.22.RELEASE

共有1个答案

苏高远
2023-03-14

Hibernate用户指南指出

但是,如果您真的需要使用双向关联,并且希望确保总是懒惰地获取,那么您需要启用懒惰状态初始化字节码增强,并使用@LazyToOne注释。"

另见https://docs.jboss.org/hibernate/orm/5.4/userguide/html_single/Hibernate_User_Guide.html#associations-一对一

因此,上面的注释LazyToOne导致了这样一个事实,即关联总是被延迟加载。

 类似资料:
  • 问题内容: 我已经添加了用于在节点服务器上提供图像的代码,但是在连接到Node时似乎不提供HTML中的图像。我还可以正确使用外部CSS和JS。这是我在Node中的代码片段(请参见下文)。先感谢您! 问题答案: 当有人尝试实现自己的静态文件服务器而不是使用Express或有效的方法而无法使其工作时,我在Stack Overflow上看到了很多类似的问题。如果可以实现自己的静态文件服务器,请执行此操作

  • 我有两个实体与单向@OneTo多项映射: 我想获得所有B实体的列表,它们是匹配限制的A实体的子实体。 这就是我卡住的地方:c.list()将返回给我一个对象列表。我不关心A,我想要B。我如何使用Hibernate标准/预测来完成它?如果有关系,我使用Hibernate 4.2.12 在这种简化的情况下,只是急切地去拿是有意义的;在真实的例子中,有一个由四个一对一的单向关联组成的链,我想让所有(或者

  • 问题内容: 我正在尝试将Entity Framework与MySQL配合使用,但出现上述错误。我安装了最新的MySQL连接器。 完整错误为: 但是,我找不到任何建议说明您如何在“ entityFramework”部分中进行注册的内容。 其他一些帖子(例如)建议将提供程序添加到该 部分中,如下所示: 但这不起作用,因为它声称名称是重复的。而且,如果我实际上遍历了,我可以看到最后一个是MySQL提供程

  • 事先,我不是在谈论内容协商。让我们假设我有一个简单的JPA实体,顺便说一下,它可以与相关的DTO转换,这并不重要。 我有一个RESTful控制器,有两个不同的路由,一个是安全的,一个是公共的。 对于这两条路由,返回相同的实体,但在第一种情况下,应该返回公共表示,比如对于用户配置文件,不返回电子邮件和密码等敏感内容。然而,在第二种情况下,需要一个私人代表,比如说所有者本身。 有什么优雅的方法可以做到

  • 我正在开发一个条形码阅读器应用程序,我想在读取条形码时显示产品图像,所以我用产品条形码编号重命名了照片,并将其放入drawables文件夹。照片名称适用于ex 1234567,请尝试使用条形码编号检索。但我在条形码上出错了。我该怎么做?

  • 单条 GET /feeds/:feed Response Status: 201 OK { "id": 13, "created_at": "2017-06-21 01:54:52", "updated_at": "2017-06-21 01:54:52", "deleted_at": null, "user_id": 1, // 发布动态的用户 "feed_conte