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

在仍返回LazyInitializationException的事务中运行惰性集合

孙承弼
2023-03-14
@Entity
@Table(name = "Product")
public class Product {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "idproduct")
    private Long idProduct;

@OneToMany(mappedBy = "product", cascade = CascadeType.ALL, orphanRemoval = true)
    Set<CommercialePieceItem> commercialePieceItems = new HashSet<>();

    }

我已经尝试了很多次初始化惰性集合的方法,但没有任何效果

1尝试:

 @Autowired
    EntityManagerFactory emf;


  EntityManager entityManager = emf.createEntityManager() ;
                entityManager.getTransaction().begin();
                entityManager.merge(product);
                int qty = product.getCommercialePieceItems().size() ;
                entityManager.getTransaction().commit();
                entityManager.close(); ;

At线

 TransactionTemplate transactionTemplate = new TransactionTemplate(platformTransactionManager) ; 
                transactionTemplate.execute(new TransactionCallback<Object>() {
                    @Override
                    public Object doInTransaction(TransactionStatus transactionStatus) {
                        Hibernate.initialize(product.getCommercialePieceItems());
                        return null;
                    }
                });
@Service
public class DatabaseService {

 @Transactional
    public void initializeLazyObject(Object objects) {
        Hibernate.initialize(objects);


    }
}
@Autowired
DatabaseService databaseservice ; 

databaseservice.initializeLazyObject(product.getCommercialePieceItems()) ; 

共有1个答案

桑坚成
2023-03-14
entityManager.merge(product);
product = entityManager.merge(product);
 类似资料:
  • 我在Spring Boot中有一个服务层类。这个类允许获取我的模型。我正在将所有模型对象转换为响应对象(DTO)。问题是我在事务中得到了一个LazyLoadException。在我看来,这不应该发生,因为数据库连接仍然是打开的。还是这样做错了?提前感谢! 原因:org.hibernate.lazyInitializationException:无法初始化代理[com.sportradar.prom

  • 我在应用程序中工作。流程和往常一样:。 我用注释了服务层类,从而将该类中的每个方法都标记为事务性的。在服务类中,我调用以获取某个域对象,然后将其转换为对象,该对象将传递给Controller。为了将域对象转换为,我编写了另一个自定义静态类(只有静态方法的类),如,它将进行此转换。 现在,域对象有一些子对象(),它被懒洋洋地加载。因此,当我在中访问子getter方法时,会发出一个额外的数据库调用,该

  • 更新:我正在从firebase控制台获取此信息:函数执行耗时2906毫秒,完成状态代码:200秒,15秒后,我获取:控制台。日志文件确实存在 我正在运行这个云firestore功能。它“工作”,但我经常得到这个作为回报:颤振:空 但在firebase控制台中,我得到了控制台。显示“文档确实存在”的日志。 解决这个问题的办法是什么?语言打字稿 非常感谢!

  • 我刚刚在一些图片中实现了Chrome76的新本地延迟加载。它只是将属性loading=“lazy”添加到图像中。 ex: 但令我惊讶的是,w3c返回了以下错误: Chrome 76发行说明https://www.chromestatus.com/feature/5645767347798016 实现示例https://www.searchenginejournal.com/google-chrom

  • 我有一个视图,它具有激活viewpager的表格布局,当查看页面时,它工作正常,但如果我单击该视图上的某个项目,然后返回到过去的屏幕,我会得到: Java.Lang.IllegalStateException:FragmentManager已经在执行事务。 不确定这是否有所不同,但当我离开这个视图时,我从一个片段变成了一个活动。