I have an entity class in Hibernate JPA spring boot app using lombok. While analysing the code , I could not find any save() code. Does the setter automatically generates the Hibernate queries and saves them to DB.
@SuperBuilder
@AllArgsConstructor
@NoArgsConstructor
@Getter
@Setter
@ToString(callSuper = true)
@Entity
@Table(name = "operation", schema = "ssp")
public class Operation extends CommonEntity{
    @Id
    @Column(name = "id")
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    @ToString.Exclude
    @ManyToOne
    @JoinColumn(name = "router_ref_id")
    private Router router;
    @ToString.Exclude
    @OneToMany(mappedBy = "operation", cascade = CascadeType.ALL)
    @OrderBy("sequence")
    private List<OperationQr> qrList;
    @ToString.Exclude
    @OneToMany(mappedBy = "operation", cascade = CascadeType.ALL)
    private Set<OperationDependency> operationDependencies;
    @ToString.Exclude
    @OneToMany(mappedBy = "operation", cascade = CascadeType.ALL)
    @OrderBy("sequence")
    private Set<OperationDocument> opnDocumentList;
    @ToString.Exclude
    @OneToOne
    @JoinColumn(name = "operation_interface")
    private OperationInterface operationInterface;
    @Column(name = "router_operation_id")
    private Integer routerOperationId;
    @Column(name = "tenant_id")
    private String tenantId;
    @Column(name = "external_system_sequence")
    private String externalSystemSequence;
The code which saves the Operation and its parts are :
private Operation saveDetails(OperationDetailsViewModel newOperationData, String sso, Router router, Operation operation) {
    copyProperties(newOperationData, operation);
    
    StopWatch stopWatch = new StopWatch();
    stopWatch.start();
    Optional<XRefWorkcenterRequirementProfile> requirementProfile = workCenterService.getRequirementProfileFor( router, newOperationData.getWorkCenter().getId() );
    
    operation.setRequrementProfile(requirementProfile.isPresent() ? requirementProfile.get().getProfileId() : null);
    
    if (isOperationInterfaceChanged(operation.getOperationInterface(), newOperationData.getOperationInterface())) {
        OperationInterface newOperationInterface = operationInterfaceService.getOperationInterface(
                router.getEnterprise(), router.getBusinessUnit(), router.getPlant(), newOperationData.getOperationInterface().getId());
        operation.setOperationInterface(newOperationInterface);
    qualityResultService.removeOldQr(operation);
    List<OperationQr> qrList = qualityResultService.createQrList(sso, operation, newOperationData.getGlobalQr());
    qrList.addAll(qualityResultService.createQrList(sso, operation, newOperationData.getLocalQr()));
    operation.setQrList(qrList);
    Set<OperationDependency> operationDependencies = operationDependenciesService.createDependencies( sso, operation, newOperationData.getDependencies() );
    operationDependencySetValidator.validateDependencySet( operationDependencies );
    operationDependenciesService.removeOldDependencies( operation );
    operation.setOperationDependencies( operationDependencies );
    documentService.removeOldOperationDocuments(operation);
    operation.setOpnDocumentList(documentService.createDocuments(sso, operation, newOperationData.getDocuments()));
    purchaseDetailService.updatePurchaseDetail(sso, operation, newOperationData.getPurchaseDetails());
    addCustomFields( sso, operation, newOperationData ) ;
    OperationUtils.setEntityUpdateData( operation, sso );
    
    stopWatch.stop();
    LOGGER.info("..........SaveOperationDetails.......... Total time = " + stopWatch.getTotalTimeMillis() + " ms");
    return operation;
}
saveDetails() is wrapped in another method which is @Transactional
 @Transactional
    public Operation addOperation( OperationDetailsViewModel newOperationData, int indexToAdd, String sso, String changeRequestNumber ) {
        Router router = getEditableRouter( newOperationData.getRouterId(), sso, changeRequestNumber );
        Operation operation = prepareNewOperation(sso, router);
        OperationUtils.addOperationToIndexWithResequencing( router.getOperationsList(), operation, indexToAdd );
        return saveDetails(newOperationData, sso, router, operation);
    }
private Operation mergeOperation(OperationDetailsViewModel operationDetailsViewModel, int i, String sso,
    String changeRequestNumber, Router router, RouterLock routerLock) {
    Operation operation;
    if(operationDetailsViewModel.getId() == null) {
        operation = saveOperationDetailsService
            .addOperation(operationDetailsViewModel, i, sso, changeRequestNumber);
    }
    else {
        operation = saveOperationDetailsService
            .updateOperation(operationDetailsViewModel, sso, changeRequestNumber, router, routerLock);
    }
    return operation;
}
  public static void addOperationToIndexWithResequencing(List<Operation> operations,
      Operation newOperationWithoutSequence, int indexToAdd) {
    operations.sort(Comparator.comparing(Operation::getSequence));
    if (indexToAdd < operations.size()) {
      operations.add(indexToAdd, newOperationWithoutSequence);
    } else {
      operations.add(newOperationWithoutSequence);
    }
    resequenceOperations(operations);
  }