FINERACT-2304 - fix entity manager usage only through persistence context annotation

This commit is contained in:
mark.vituska
2025-05-29 13:52:49 +02:00
committed by Adam Saghy
parent d71c0bd204
commit 96d6099cc1
12 changed files with 40 additions and 17 deletions
@@ -90,8 +90,7 @@ public class BatchApiServiceImpl implements BatchApiService {
private final List<BatchRequestPreprocessor> batchPreprocessors;
@PersistenceContext
private final EntityManager entityManager;
private EntityManager entityManager;
/**
* Run each request root step in a separated transaction
@@ -380,4 +379,9 @@ public class BatchApiServiceImpl implements BatchApiService {
return new BatchResponse().setRequestId(requestId).setStatusCode(statusCode == null ? SC_INTERNAL_SERVER_ERROR : statusCode)
.setBody(body == null ? "Request with id " + requestId + " was erroneous!" : body).setHeaders(headers);
}
@PersistenceContext
public void setEntityManager(EntityManager entityManager) {
this.entityManager = entityManager;
}
}
@@ -19,6 +19,7 @@
package org.apache.fineract.infrastructure.core.jpa;
import jakarta.persistence.EntityManager;
import jakarta.persistence.PersistenceContext;
import jakarta.persistence.TypedQuery;
import jakarta.persistence.criteria.CriteriaBuilder;
import jakarta.persistence.criteria.CriteriaQuery;
@@ -41,7 +42,8 @@ import org.springframework.stereotype.Component;
@RequiredArgsConstructor
public class CriteriaQueryFactory {
private final EntityManager entityManager;
@PersistenceContext
private EntityManager entityManager;
public List<Order> ordersFromPageable(Pageable pageable, CriteriaBuilder cb, Root<?> root) {
return ordersFromPageable(pageable, cb, root, () -> null);
@@ -30,7 +30,7 @@ import org.springframework.stereotype.Component;
public class CustomExternalEventConfigurationRepositoryImpl implements CustomExternalEventConfigurationRepository {
@PersistenceContext
private final EntityManager entityManager;
private EntityManager entityManager;
@Override
public ExternalEventConfiguration findExternalEventConfigurationByTypeWithNotFoundDetection(String externalEventType) {
@@ -19,6 +19,7 @@
package org.apache.fineract.portfolio.client.domain.search;
import jakarta.persistence.EntityManager;
import jakarta.persistence.PersistenceContext;
import jakarta.persistence.TypedQuery;
import jakarta.persistence.criteria.CriteriaBuilder;
import jakarta.persistence.criteria.CriteriaQuery;
@@ -44,7 +45,9 @@ import org.springframework.stereotype.Repository;
@RequiredArgsConstructor
public class SearchingClientRepositoryImpl implements SearchingClientRepository {
private final EntityManager entityManager;
@PersistenceContext
private EntityManager entityManager;
private final CriteriaQueryFactory criteriaQueryFactory;
@Override
@@ -66,6 +66,7 @@ class BatchApiServiceImplTest {
@BeforeEach
void setUp() {
batchApiService.setEntityManager(entityManager);
request = new BatchRequest();
request.setRequestId(1L);
request.setMethod("POST");
@@ -19,6 +19,7 @@
package org.apache.fineract.investor.domain.search;
import jakarta.persistence.EntityManager;
import jakarta.persistence.PersistenceContext;
import jakarta.persistence.TypedQuery;
import jakarta.persistence.criteria.CriteriaBuilder;
import jakarta.persistence.criteria.CriteriaQuery;
@@ -46,7 +47,9 @@ import org.springframework.stereotype.Repository;
@RequiredArgsConstructor
public class SearchingExternalAssetOwnerRepositoryImpl implements SearchingExternalAssetOwnerRepository {
private final EntityManager entityManager;
@PersistenceContext
private EntityManager entityManager;
private final CriteriaQueryFactory criteriaQueryFactory;
@Override
@@ -19,6 +19,7 @@
package org.apache.fineract.portfolio.loanaccount.domain;
import jakarta.persistence.EntityManager;
import jakarta.persistence.PersistenceContext;
import jakarta.persistence.TypedQuery;
import jakarta.persistence.criteria.CriteriaBuilder;
import jakarta.persistence.criteria.CriteriaQuery;
@@ -41,7 +42,9 @@ import org.springframework.stereotype.Repository;
@RequiredArgsConstructor
public class LoanSummaryBalancesRepository {
private final EntityManager entityManager;
@PersistenceContext
private EntityManager entityManager;
private final CriteriaQueryFactory criteriaQueryFactory;
public Collection<LoanTransactionBalanceWithLoanId> retrieveLoanSummaryBalancesByTransactionType(final Long loanId,
@@ -19,6 +19,7 @@
package org.apache.fineract.portfolio.loanaccount.service;
import jakarta.persistence.EntityManager;
import jakarta.persistence.PersistenceContext;
import jakarta.persistence.TypedQuery;
import jakarta.persistence.criteria.CriteriaBuilder;
import jakarta.persistence.criteria.CriteriaQuery;
@@ -42,7 +43,9 @@ import org.springframework.transaction.annotation.Transactional;
@RequiredArgsConstructor
public class LoanChargePaidByReadService {
private final EntityManager entityManager;
@PersistenceContext
private EntityManager entityManager;
private final LoanChargePaidByMapper loanChargePaidByMapper;
public List<LoanChargePaidByData> fetchLoanChargesPaidByDataTransactionId(Long transactionId) {
@@ -19,6 +19,7 @@
package org.apache.fineract.portfolio.loanaccount.service;
import jakarta.persistence.EntityManager;
import jakarta.persistence.PersistenceContext;
import jakarta.persistence.TypedQuery;
import jakarta.persistence.criteria.CriteriaBuilder;
import jakarta.persistence.criteria.CriteriaQuery;
@@ -41,7 +42,8 @@ import org.springframework.transaction.annotation.Transactional;
@RequiredArgsConstructor
public class LoanTransactionReadService {
private final EntityManager entityManager;
@PersistenceContext
private EntityManager entityManager;
public List<LoanTransaction> fetchLoanTransactionsByType(final Long loanId, final String externalId,
final LoanTransactionType transactionType) {
@@ -19,6 +19,7 @@
package org.apache.fineract.portfolio.loanaccount.service;
import jakarta.persistence.EntityManager;
import jakarta.persistence.PersistenceContext;
import jakarta.persistence.TypedQuery;
import jakarta.persistence.criteria.CriteriaBuilder;
import jakarta.persistence.criteria.CriteriaQuery;
@@ -42,7 +43,9 @@ import org.springframework.transaction.annotation.Transactional;
@RequiredArgsConstructor
public class LoanTransactionRelationReadService {
private final EntityManager entityManager;
@PersistenceContext
private EntityManager entityManager;
private final LoanTransactionRelationMapper loanTransactionRelationMapper;
public List<LoanTransactionRelationData> fetchLoanTransactionRelationDataFrom(final Long transactionId) {
@@ -19,6 +19,7 @@
package org.apache.fineract.cob.domain;
import jakarta.persistence.EntityManager;
import jakarta.persistence.PersistenceContext;
import lombok.RequiredArgsConstructor;
import org.apache.fineract.infrastructure.core.service.database.DatabaseSpecificSQLGenerator;
import org.springframework.stereotype.Repository;
@@ -27,7 +28,9 @@ import org.springframework.stereotype.Repository;
@RequiredArgsConstructor
public class CustomLoanAccountLockRepositoryImpl implements CustomLoanAccountLockRepository {
private final EntityManager entityManager;
@PersistenceContext
private EntityManager entityManager;
private final DatabaseSpecificSQLGenerator databaseSpecificSQLGenerator;
@Override
@@ -28,9 +28,9 @@ import jakarta.persistence.EntityManager;
import org.apache.fineract.infrastructure.event.external.exception.ExternalEventConfigurationNotFoundException;
import org.apache.fineract.infrastructure.event.external.repository.CustomExternalEventConfigurationRepositoryImpl;
import org.apache.fineract.infrastructure.event.external.repository.domain.ExternalEventConfiguration;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.junit.jupiter.MockitoExtension;
@@ -41,13 +41,9 @@ public class CustomExternalEventConfigurationRepositoryImplTest {
@Mock
private EntityManager entityManager;
@InjectMocks
private CustomExternalEventConfigurationRepositoryImpl underTest;
@BeforeEach
public void setUp() {
underTest = new CustomExternalEventConfigurationRepositoryImpl(entityManager);
}
@Test
public void givenConfigurationExistsThenReturnConfiguration() {
// given