Spring JPA Hibernate JpaRepository Каскад OneToMany удалить не работает - PullRequest
0 голосов
/ 01 ноября 2018

репозиторий Spring Hibernate Jpa.

Я не могу каскадно удалить, также я не получаю никакой ошибки.

У меня есть следующие объекты, и я добавил отношения, как показано ниже.

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.FetchType;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;

import org.hibernate.annotations.OnDelete;
import org.hibernate.annotations.OnDeleteAction;

import com.abc.enumerator.ServiceSpecializationEnum;
import com.fasterxml.jackson.annotation.JsonIgnore;

@Entity
public class SpecializationServices extends BaseEntity{

    /**
     * 
     */
    private static final long serialVersionUID = -6438039604817328747L;

    private String name;

    @Enumerated(EnumType.STRING)
    private ServiceSpecializationEnum type;

    //@JsonIgnore
    @OneToMany(mappedBy = "specialization", fetch = FetchType.LAZY, cascade = CascadeType.ALL, orphanRemoval = true)
    private List<UserSpecializationServices> userSpecializations;

Вот UserSpecializationServices

import javax.persistence.Entity;
import javax.persistence.ManyToOne;

@Entity
public class UserSpecializationServices extends BaseEntity{

    /**
     * 
     */
    private static final long serialVersionUID = 7884804824368079879L;

    @ManyToOne
    private UserIdentity userIdentity;

    @ManyToOne
    private SpecializationServices specialization;

Также мой репозиторий выглядит так, как показано ниже.

@Repository
public interface SpecializationServicesRepository extends JpaRepository<SpecializationServices, Long>{
}

Я выполняю следующее действие удаления для serviceImpl

    @Transactional
    @Service
    public class SpecializationServiceImpl {        
        @Autowired
        private SpecializationServicesRepository specializationServiceRepository;

        @Override
        public void deleteServices(Long id) {
SpecializationServices specializationService = specializationServiceRepository.findById(id).get();
specializationServiceRepository.delete(specializationService);
        }
    }

Даже я пробовал пакет Hibernate @cascade (CascadeType.ALL) тоже, но не повезло. Я пытался @OnDelete (action = OnDeleteAction.CASCADE) тоже, но он не удаляет и не выдает никаких ошибок.

Пожалуйста, дайте мне знать, если я что-то здесь упускаю?

...