jpa delete 예제

삭제 프로세스의 결과를 표시하기 위해 삭제 메서드가 호출되기 전과 후에 아티스트 데이터를 인쇄합니다. 긴 형식의 반환 값은 메서드가 삭제된 레코드 수를 나타냅니다. 엔터티를 제거하는 또 다른 방법은 아래 방식으로 JPQL(Java 지속성 쿼리 언어)을 사용하는 것입니다. 단일 문으로 여러 행을 삭제하는 데 도움이 될 수 있습니다. 참고 : 위의 출력 deleteByXXX 메서드가 먼저 지정된 절과 일치하는 엔터티를 가져온 다음 delete(기본 Key)를 사용하여 엔터티를 삭제합니다(위의 출력에서 줄 22 참조). 이 자습서에서는 가져온 엔터티에서 findByXXX 및 호출 delete(primaryKey)를 호출하는 것과 같으며 JPQL, CascadeType.REMOVE 또는 CascadeType.ALL 및 orphanRemove를 사용하여 JPA 및 최대 절전 모드 엔터티를 사용하여 데이터를 삭제하는 방법을 배웁니다. 또한 메모리 내 데이터베이스와 @DataJpaTest 스프링 부팅에서 JPA 통합 테스트를 수행하는 방법을 배우게됩니다. 스프링 부팅 및 스프링 데이터 JPA @Query 메서드가 데이터베이스에 대해 단일 JPQL 쿼리를 만드는 예제를 빌드해 보겠습니다. 이에 비해 deleteBy 메서드는 읽기 쿼리를 실행한 다음 각 항목을 하나씩 삭제합니다. 이 예제에서는 먼저 Find() 호출을 사용하여 엔터티를 찾습니다.

JPA에서 엔터티를 삭제하려면 엔터티 자체를 관리해야 하며 이는 지속성 컨텍스트에 있음을 의미합니다. 즉, 호출 응용 프로그램이 엔터티를 이미 로드하거나 액세스했어야 하며 이제 엔터티를 제거하는 명령을 실행합니다. ArtistDao 클래스에서 삭제 메서드를 정의한 후 두 가지 를 모두 보여 주는 간단한 프로그램을 만듭니다. 이 프로그램에서는 지속성.xml 파일에 정의된 지속성 단위에서 EntityManagerFactory 개체를 만듭니다. 그런 다음 EntityManager 개체를 만들고 ArtistDaoImpl 개체에 전달합니다. 그런 다음 delete 메서드를 호출하여 데이터베이스에서 엔터티를 제거합니다. 하나의 쿼리를 사용하여 삭제하려면 `단일 JPQL 쿼리/@Query 사용하여 삭제` 예제를 참조하여 코드 스니펫의 결과입니다. 삭제 프로세스 전후의 레코드 수를 표시합니다. 삭제 문에서 JPQL 쿼리를 사용하지 않고 SQL 쿼리를 사용하고 있습니다. 제목별로 책을 삭제한다고 가정해 보겠습니다.

명명 규칙을 사용 하 여, deleteBy 및 목록 제목 우리의 기준으로: 유지 하 고 JPA에서 개체를 삭제 해야 트랜잭션, 그래서 우리는 이러한 파생 된 삭제 쿼리를 사용 하는 경우 @Transactional 지정을 사용 해야 합니다., 확인 하려면 트랜잭션이 실행되고 있습니다. 이것은 스프링 설명서와 함께 ORM에서 자세히 설명합니다. 이제 두 가지 범주를 추가하고 현재 가지고 있는 책과 연결해 보겠습니다. 이제 범주를 삭제하려고하면 책도 삭제됩니다 : deleteByFirstName : 봄 데이터 프레임 워크를 제거하고 메서드에서 deleteBy를 제거하고 나머지 부분을 구문 분석하기 시작하고 필터로 firstName 필드를 사용하여 쿼리를 만듭니다. 다른 사람의 사이에서, CrudRepository는 두 가지 방법이 포함되어 있습니다 : deleteById 및 deleteAll. https://github.com/hellokoding/hellokoding-courses/tree/master/jpa-hibernate-examples/jpa-hibernate-crud-deleting-entity 이 문서에서는 스프링 데이터 JPA에서 엔터티를 삭제하는 여러 가지 방법을 살펴보았습니다.