Interface ProjectJpaRepository
- All Superinterfaces:
org.springframework.data.repository.CrudRepository<Project,,Integer> org.springframework.data.jpa.repository.JpaRepository<Project,,Integer> org.springframework.data.repository.ListCrudRepository<Project,,Integer> org.springframework.data.repository.ListPagingAndSortingRepository<Project,,Integer> org.springframework.data.repository.PagingAndSortingRepository<Project,,Integer> org.springframework.data.repository.query.QueryByExampleExecutor<Project>,org.springframework.data.repository.Repository<Project,Integer>
public interface ProjectJpaRepository
extends org.springframework.data.jpa.repository.JpaRepository<Project,Integer>
ProjectJpaRepository는 Project 엔티티에 대한 데이터 액세스 기능을 제공.
-
Method Summary
Modifier and TypeMethodDescriptionlongcountByUserAndSemesterAndProjectFields_FieldAndState(User user, Semester semester, Field field, BaseEntity.State state) findAllByState(Integer semesterId, BaseEntity.State state) findAllByUserCollegeIdAndState(Integer collegeId, Integer semesterId, BaseEntity.State state) findAllByUserDepartmentIdAndState(Integer departmentId, Integer semesterId, BaseEntity.State state) findAllByUserIdAndState(Integer userId, Integer semesterId, BaseEntity.State state) findByIdAndState(Integer projectIdx, BaseEntity.State state) findProjectFieldsByProjectIds(List<Integer> projectIds) voidupdateStarState(Integer projectIdx, boolean starState) Methods inherited from interface org.springframework.data.repository.CrudRepository
count, delete, deleteAll, deleteAll, deleteAllById, deleteById, existsById, findById, saveMethods inherited from interface org.springframework.data.jpa.repository.JpaRepository
deleteAllByIdInBatch, deleteAllInBatch, deleteAllInBatch, deleteInBatch, findAll, findAll, flush, getById, getOne, getReferenceById, saveAllAndFlush, saveAndFlushMethods inherited from interface org.springframework.data.repository.ListCrudRepository
findAll, findAllById, saveAllMethods inherited from interface org.springframework.data.repository.ListPagingAndSortingRepository
findAllMethods inherited from interface org.springframework.data.repository.PagingAndSortingRepository
findAllMethods inherited from interface org.springframework.data.repository.query.QueryByExampleExecutor
count, exists, findAll, findBy, findOne
-
Method Details
-
findByIdAndState
-
updateStarState
@Modifying(clearAutomatically=true) @Query("UPDATE Project p SET p.starState = :starState WHERE p.id = :projectIdx") void updateStarState(@Param("projectIdx") Integer projectIdx, @Param("starState") boolean starState) -
countByUserAndSemesterAndProjectFields_FieldAndState
long countByUserAndSemesterAndProjectFields_FieldAndState(User user, Semester semester, Field field, BaseEntity.State state) -
findAllByStateOrderById
-
findByIdAndStateWithPessimisticLock
@Lock(PESSIMISTIC_WRITE) @QueryHints() @Query("SELECT p FROM Project p WHERE p.id = :id AND p.state = :state") Optional<Project> findByIdAndStateWithPessimisticLock(@Param("id") Integer id, @Param("state") BaseEntity.State state) -
findAllByState
@Query("SELECT DISTINCT p FROM Project p JOIN FETCH p.user u JOIN FETCH u.userDepartments ud JOIN FETCH ud.department d JOIN FETCH d.college c JOIN FETCH p.semester s JOIN FETCH p.category cat WHERE p.state = :state AND (:semesterId IS NULL OR s.id = :semesterId) ORDER BY c.id ASC, d.id ASC, u.userNumber ASC") List<Project> findAllByState(@Param("semesterId") Integer semesterId, @Param("state") BaseEntity.State state) -
findAllByUserCollegeIdAndState
@Query("SELECT DISTINCT p FROM Project p JOIN FETCH p.user u JOIN FETCH u.userDepartments ud JOIN FETCH ud.department d JOIN FETCH d.college c JOIN FETCH p.semester s JOIN FETCH p.category cat WHERE c.id = :collegeId AND p.state = :state AND (:semesterId IS NULL OR s.id = :semesterId) ORDER BY c.id ASC, d.id ASC, u.userNumber ASC") List<Project> findAllByUserCollegeIdAndState(@Param("collegeId") Integer collegeId, @Param("semesterId") Integer semesterId, @Param("state") BaseEntity.State state) -
findAllByUserDepartmentIdAndState
@Query("SELECT DISTINCT p FROM Project p JOIN FETCH p.user u JOIN FETCH u.userDepartments ud JOIN FETCH ud.department d JOIN FETCH d.college c JOIN FETCH p.semester s JOIN FETCH p.category cat WHERE d.id = :departmentId AND p.state = :state AND (:semesterId IS NULL OR s.id = :semesterId) ORDER BY c.id ASC, d.id ASC, u.userNumber ASC") List<Project> findAllByUserDepartmentIdAndState(@Param("departmentId") Integer departmentId, @Param("semesterId") Integer semesterId, @Param("state") BaseEntity.State state) -
findAllByUserIdAndState
@Query("SELECT DISTINCT p FROM Project p JOIN FETCH p.user u JOIN FETCH u.userDepartments ud JOIN FETCH ud.department d JOIN FETCH d.college c JOIN FETCH p.semester s JOIN FETCH p.category cat WHERE u.id = :userId AND p.state = :state AND (:semesterId IS NULL OR s.id = :semesterId) ORDER BY p.createdAt DESC") List<Project> findAllByUserIdAndState(@Param("userId") Integer userId, @Param("semesterId") Integer semesterId, @Param("state") BaseEntity.State state) -
findProjectFieldsByProjectIds
@Query("SELECT DISTINCT pf FROM ProjectField pf JOIN FETCH pf.field WHERE pf.project.id IN :projectIds") List<ProjectField> findProjectFieldsByProjectIds(@Param("projectIds") List<Integer> projectIds) -
findByIdWithTeamMembers
-