/*package com.dacrt.SBIABackend.repository;

import java.util.Optional;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.stereotype.Repository;

import com.dacrt.SBIABackend.entity.Operationlines;
import com.dacrt.SBIABackend.entity.Riskevalfactors;
import com.dacrt.SBIABackend.entity.Riskevaluations;


	@Repository
	public interface RiskevalfactorsRepository extends JpaRepository<Riskevalfactors,Integer>,JpaSpecificationExecutor<Riskevalfactors>{

		boolean existsById(Integer id);
		Riskevalfactors getByRiskevaluationid(int id);
		Riskevalfactors getByRiskevaluationidAndRiskfactorid(int id,int riskfactorid);
		Riskevalfactors getById(int id);
		// Para el caso de borrar (ID < 0)
	    void deleteByRiskevaluationidAndRiskfactorid(Integer evalId, Integer rfId);
	    
	    // Para el caso de actualizar (ID > 0)
	    Optional<Riskevalfactors> findByRiskevaluationidAndRiskfactorid(Integer evalId, Integer rfId);
	 //   void deleteByRiskevaluationidAndRiskfactorid(Integer evalId, Integer rfId);
	    
	    
}*/

package com.dacrt.SBIABackend.repository;

import java.util.Optional;
import java.util.List;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.stereotype.Repository;
import com.dacrt.SBIABackend.entity.Riskevalfactors;

@Repository
public interface RiskevalfactorsRepository extends JpaRepository<Riskevalfactors, Integer>, JpaSpecificationExecutor<Riskevalfactors> {

    // 1. Búsquedas Simples
    Optional<Riskevalfactors> findByRiskevaluationid(Integer riskevaluationid);
    
    // 2. Búsqueda por ambos IDs (Para el caso ID > 0 - Actualizar)
    // Nota: Asegúrate de que en tu clase Entity el campo se llame exactamente 'riskevaluationid' y 'riskfactorid'
    Optional<Riskevalfactors> findByRiskevaluationidAndRiskfactorid(Integer riskevaluationid, Integer riskfactorid);

    // 3. Borrado (Para el caso ID < 0)
    // IMPORTANTE: Sin @Modifying y @Transactional, el borrar fallará en tiempo de ejecución
    @Modifying
    @Transactional
    void deleteByRiskevaluationidAndRiskfactorid(Integer riskevaluationid, Integer riskfactorid);

    // 4. Otros métodos útiles
    boolean existsById(Integer id);
}