View Javadoc
1   package fr.tiogars.chat.domains.nomenclature.repositories;
2   
3   import java.util.List;
4   import fr.tiogars.chat.domains.nomenclature.entities.NomenclatureEntity;
5   import jakarta.persistence.LockModeType;
6   import org.springframework.data.jpa.repository.JpaRepository;
7   import org.springframework.data.jpa.repository.Lock;
8   import org.springframework.data.jpa.repository.Query;
9   
10  public interface NomenclatureRepository extends JpaRepository<NomenclatureEntity, Long> {
11      List<NomenclatureEntity> findAllByOrderByCodeAsc();
12  
13      boolean existsByCode(String code);
14  
15      @Query("select count(n) > 0 from NomenclatureEntity n where n.parent.id = :parentId")
16      boolean existsByParentId(Long parentId);
17  
18      @Lock(LockModeType.PESSIMISTIC_WRITE)
19      @Query("select n from NomenclatureEntity n order by n.id")
20      List<NomenclatureEntity> lockForest();
21  
22      @Query(value = "select count(*) from tasks where nomenclature_id = :id", nativeQuery = true)
23      long countTaskReferences(Long id);
24  }