티스토리 뷰

728x90

한 친구가 데이터베이스에 값이 존재하는지 여부를 찾기 위해 queryDsl로 count 함수를 직접 구현하기에 다른 방법이 없는지 찾아보았다.

Spring Data JPA

에서는

existsById

라는 것을 제공한다. 갓jpa..

package com.example.springsecurity;

import com.example.springsecurity.repository.member.MemberRepository;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class SpringSecurityApplicationTests {
    @Autowired
    MemberRepository memberRepository;
    @Test
    void exist() {
        Assertions.assertEquals(memberRepository.existsById("1"), false);
    }
}

위의 테스트를 실행 한 결과, JPA가 나 대신 count 쿼리를 작성하여 실행 시킨 후 boolean 타입으로 리턴해준다.

이 외에도 CrudRepository는 아래와 같은 메소드를 제공한다.

//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//

package org.springframework.data.repository;

import java.util.Optional;

@NoRepositoryBean
public interface CrudRepository<T, ID> extends Repository<T, ID> {
    <S extends T> S save(S entity);
    <S extends T> Iterable<S> saveAll(Iterable<S> entities);
    Optional<T> findById(ID id);
    boolean existsById(ID id);
    Iterable<T> findAll();
    Iterable<T> findAllById(Iterable<ID> ids);
    long count();
    void deleteById(ID id);
    void delete(T entity);
    void deleteAllById(Iterable<? extends ID> ids);
    void deleteAll(Iterable<? extends T> entities);
    void deleteAll();
}
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함