0

I have this entity

@Builder
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(onlyExplicitlyIncluded = true)
@Data
@Entity
@Table(name = "visits")
public class Visit {

    @EqualsAndHashCode.Include
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @NotNull
    @Column(nullable = false, updatable = false)
    private long id;

    @Column
    private LocalDate date;

    @Column
    private LocalTime startTime;

    @Column
    private LocalTime endTime;

    @ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
    @JoinColumn(name = "client_id")
    private Client client;

    @ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
    @JoinColumn(name = "employee_id")
    private Employee employee;

    @ManyToMany(cascade = CascadeType.ALL)
    @JoinTable(
            name = "services_booked",
            joinColumns = {@JoinColumn(name = "visit_id")},
            inverseJoinColumns = {@JoinColumn(name = "service_id")}
    )
    private Set<Service> servicesBooked = new HashSet<>();

    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "visit")
    private Set<TimeSlot> timeSlots = new HashSet<>();

}

My controller performs delete action on service bean into transaction:

    @Transactional
    @DeleteMapping("/{id}")
    public ResponseEntity<DeleteVisitResponse> deleteVisit(@PathVariable("id") long visitId,
                                                           @RequestAttribute(USER_AUTH) UserAuthDto userAuthDto) {
// some logic    
            Optional<Visit> visit = visitService.findVisitById(visitId);
// check isPresent via Optional.map
            visitService.deleteVisit(visit.get());
// constructing the response
    }

And service bean just deletes it:

@Override
public void deleteVisit(@NonNull Visit visit) {
    visitRepository.delete(visit);
}

But actually it does not delete it. It performs sequential selects to resolve chained entities. Here are log records of that deletion: https://gist.github.com/bvn13/906582ad39720e033c24ddd6f59f906c

That's all. Why it cannot perform deleting operation?

bvn13
  • 154
  • 11

0 Answers0