Bonjour, je travaille sur une application spring boot. J'ai développé une fonctionalité qui marche bien sans erreur. Cependant, quand je fais un test d'intégration avec le même code, j'ai l'erreur suivante:
Voici la méthode où il y a une erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.vol.domain.DimPartner.partnerOrderHeaders, could not initialize proxy - no Session
L'erreur se produit à cette ligne:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 private List<OrderHeaderClusterData> constructOrderHeaderClusterDataFromPartner(DimPartner dimPartner) { List<OrderHeaderClusterData> orderHeaderClusterDatas = new ArrayList<OrderHeaderClusterData>(); OrderHeaderClusterData orderHeaderClusterData = new OrderHeaderClusterData(); Set<FactAssocPartnerOrderHeader> factAssocPartnerOrderHeaders = dimPartner.getPartnerOrderHeaders(); DimOrderHeader dimOrderHeader = null; Set<FactOrderItem> factOrderItems = null; FactOrderItemClusterData factOrderItemClusterData = null; for (FactAssocPartnerOrderHeader factAssocPartnerOrderHeader : factAssocPartnerOrderHeaders) { orderHeaderClusterData = new OrderHeaderClusterData(); dimOrderHeader = factAssocPartnerOrderHeader.getHeader(); orderHeaderClusterData.setOrderNo(dimOrderHeader.getOrderNo()); PartnerData partnerData = dimPartner != null ? ConvertDomainObjectToDataObjectAndReverse.convertDimPartnerToPartnerData(dimPartner) : null; orderHeaderClusterData.setPartnerDatas(Arrays.asList(new PartnerData[]{partnerData})); factOrderItems = dimOrderHeader.getItems(); List<FactOrderItemClusterData> factOrderItemClusterDatas = new ArrayList<FactOrderItemClusterData>(); for (FactOrderItem factOrderItem : factOrderItems) { factOrderItemClusterData = new FactOrderItemClusterData(); factOrderItemClusterData.setItemNo(factOrderItem.getOrderItemNo()); factOrderItemClusterData.setStcPurchaseOrder(factOrderItem.getCustomerPoItemLevel()); factOrderItemClusterData.setStcPOItem(factOrderItem.getItemNoCustomerPoLevel()); factOrderItemClusterData.setDimensionData(factOrderItem.getDimension() != null ? ConvertDomainObjectToDataObjectAndReverse.convertDimDimensionToDimensionData(factOrderItem.getDimension()) : null); factOrderItemClusterData.setMaterialData(factOrderItem.getMaterials() != null ? ConvertDomainObjectToDataObjectAndReverse.convertDimMaterialToMaterialData(factOrderItem.getMaterials()) : null); factOrderItemClusterDatas.add(factOrderItemClusterData); } orderHeaderClusterData.setFactOrderItems(factOrderItemClusterDatas); orderHeaderClusterDatas.add(orderHeaderClusterData); } return orderHeaderClusterDatas; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 for (FactAssocPartnerOrderHeader factAssocPartnerOrderHeader : factAssocPartnerOrderHeaders){
Mais la chose importante est le fait que ça marche sans erreur quand je teste la fonctionnalité alors que ça ne marche pas dans la partie test d'intégration. Il doit me manquer un détail de configuration pour les tests. Pouvez vous m'aider s'il vous plait ?
Partager