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

JPA Hibernate,连接后延迟加载

彭朝
2023-03-14

我需要从Rest控件获取一个实体及其集合,但我对spring data JPA有一个非常奇怪的行为。

我对带有懒惰加载的实体有一种莫名其妙的关系。

@Entity
class Folder{
    ...
    @ManyToMany(fetch = FetchType.LAZY)
    protected Set<Tag> tags;

    ...getter setter
}

@Entity class Tag{

    @ManyToMany(fetch = FetchType.LAZY, mappedBy = "tags"
    protected List<File> files; 
}
@Query("SELECT f FROM Folder f INNER JOIN f.tags t WHERE
        f.id = :id")
Folder findFolderById(@Param("id") int id);

共有1个答案

宿丰
2023-03-14

多亏了艾伦·海。解决方案很简单,我们只需要使用Fetch关键字。以便填充集合。

@Query("SELECT f FROM Folder f LEFT JOIN FETCH f.tags t WHERE
        f.id = :id")
Folder findFolderById(@Param("id") int id);
 类似资料:
  • 延迟连接用于减少长连接数。当有调用发起时,再创建长连接。1 <dubbo:protocol name="dubbo" lazy="true" /> 1. 注意:该配置只对使用长连接的 dubbo 协议生效。 ↩

  • 我有一个Kafka连接接收器记录从Kafka主题到S3。它在工作,但太慢了。Kafka主题每秒接收约30000条消息。连接接收器无法跟上。我已经尝试增加Kafka连接器的任务。最大值从1到3,这会创建更多任务,但这似乎无助于提高消息/秒的速度。我试着增加Kafka连接工人的CPU分配,这似乎也没有帮助。 我还能试什么?哪些指标有助于监控以进一步识别瓶颈? 更新:Kafka主题有5个分区。Kafka

  • 我想使用Flink流媒体以低延迟处理市场数据( 我有一组计算,每个都订阅三个流:缓慢移动的参数数据、股票价格和汇率。 例如。 Params(缓慢滴答:每天一次或两次): 资源(每秒多次滴答声): fx(每秒多次滴答声): 每当任何股票、外汇汇率或参数数据发生变化时,我都想立即计算结果并将其输出为新流。这在逻辑上可以表示为连接: 例如选择价格=(params.strike-asset.spot)*f

  • 描述 (Description) 延迟加载可应用于图像,背景图像和淡入效果,如下所述 - 对于图像 要在图像上使用延迟加载,请按照给定的步骤进行操作 - 使用data-src属性而不是src属性来指定图像源。 将类lazy添加到图像。 <div class = "page-content"> ... <img data-src = "image_path.jpg" class = "l

  • 我正在使用Mika Tuupola的jQuery延迟加载。 是否可以在每次延迟加载图像后调用函数。 我打算做的是跟踪图像的浏览次数。因此,如果图像是延迟加载的,这意味着用户已经看到了图像,我将通过在后台执行HTTP GET,将数据库中的计数器增加1。

  • 问题内容: 我在JPA实体中的延迟加载属性有问题。我读过许多类似的问题,但它们与spring或hibernate有关,并且他们的后代不适用或没有帮助。 该应用程序是在Wildfly应用程序服务器上运行的JEE和JPA2.1。有两个实体,DAO会话bean和servlet将它们放在一起: 当我运行此代码时,它失败并显示: 我对WebLogic / JPA1使用了非常相似的模式,并且运行平稳。任何的想