Невозможно удалить записи через репозиторий jpa - PullRequest
0 голосов
/ 15 октября 2019

В Springboot я создал метод удаления в хранилище. Я использовал этот же метод репозитория, чтобы удалить запись в сервисном методе. Записи не удаляются. Это исключение. Пожалуйста, порекомендуйте.

Код:

public interface SopCffDtlDependentRepository extends JpaRepository<SopCffDtlDependent,String>{

    String deleteByQuotationNo(String quotationNo);
    }


@Autowired
SopCffDtlDependentRepository sopCffDtlDependentRepository;


String noOfRecordsDeleted = sopCffDtlDependentRepository.deleteByQuotationNo(params.getQuotationNo());

                @Entity
                @Table(name = "SOP_CFF_DTL_DEPENDENT")
                public class SopCffDtlDependent {


                    @Column(name="NAME")
                    private String name;

                    @Column(name = "RELATIONSHIP")
                    private String relationShip;

                    @Column(name ="DOB")
                    private Date dob;

                    @Column(name="GENDER")
                    private String gender;

                    @Column(name="YEAR_OF_SUPPORT")
                    private Integer yearOfSupport;

                    @Id
                    @Column(name="QUOTATION_NO")    
                    private String quotationNo;

                    @Column(name="INVESTMENT_PREFER")   
                    private String investmentPrefer;

                    @Column(name="SEQUENCE_NO") 
                    private int sequenceNo;
}

Исключение:

 org.springframework.dao.InvalidDataAccessApiUsageException: No EntityManager with actual transaction available for current thread - cannot reliably process 'remove' call; nested exception is javax.persistence.TransactionRequiredException: No EntityManager with actual transaction available for current thread - cannot reliably process 'remove' call

Ответы [ 2 ]

2 голосов
/ 15 октября 2019

Вы должны добавить Изменения и Транзакционную аннотацию, чтобы удалить по условию. Я не уверен, что это причина, просматривая ваши журналы.

@Transactional
@Modifying
void deleteByQuotationNo(String quotationNo);
1 голос
/ 15 октября 2019

Когда вы используете @Service, предпочтительнее поместить туда @ Transactional аннотацию:

public class SopCffDtlDependentServiceImpl implements SopCffDtlDependentService {
    @Autowired
    SopCffDtlDependentRepository repo;
    ...
    @Override
    @Transactional
    public String deleteByQuotationNo(String quotationNo) {
        repo.deleteByQuotationNo(quotationNo);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...