250x250
Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- error
- Exception
- Eclipse
- Docker
- myBatis
- SpringBoot
- MSSQL
- Core Java
- JDBC
- 설정
- AJAX
- git
- JavaScript
- Tomcat
- Thymeleaf
- Open Source
- maven
- oracle
- jpa
- spring
- STS
- 오픈소스
- MySQL
- Spring Boot
- Source
- ubuntu
- PostgreSQL
- Python
- 문서
- IntelliJ
Archives
- Today
- Total
헤르메스 LIFE
[JPA] Query Modifying 의 사용 본문
728x90
NativeQuery 를 이용해서 삭제했는데, 아래와 같은 오류가 발생했습니다.
could not extract ResultSet; nested exception is org.hibernate.exception.GenericJDBCException: could not extract ResultSet
CommentRepository.java
package octopus.bbs.comment.repository;
import java.util.List;
import javax.persistence.Tuple;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import octopus.bbs.comment.dto.TCommentM;
// https://hackids.tistory.com/129 참조
//
// @Repository : JpaRepository를 사용하면 @Repository를 사용하지 않아도 됨.
public interface CommentRepository extends JpaRepository<TCommentM, Long> {
String DELETE_BY_POSTID = "delete from t_comment_m a " +
" where a.post_id = ?1";
@Query(value = DELETE_BY_POSTID, nativeQuery = true)
void deleteByPostId(Long postId);
}
DELETE를 실행하면 막상될 듯 하지만, 원하는 결과를 얻을 수 없습니다.
@Query 는 데이터베이스에서 읽기를 위한 쿼리를 실행합니다. 실제 Database 에 Update / Delete 하지 않습니다. @Modifying Annotation 을 사용하면 Update Query로 트리거된다고 합니다.
CommentRepository.java
package octopus.bbs.comment.repository;
import java.util.List;
import javax.persistence.Tuple;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import octopus.bbs.comment.dto.TCommentM;
// https://hackids.tistory.com/129 참조
//
// @Repository : JpaRepository를 사용하면 @Repository를 사용하지 않아도 됨.
public interface CommentRepository extends JpaRepository<TCommentM, Long> {
String DELETE_BY_POSTID = "delete from t_comment_m a " +
" where a.post_id = ?1";
@Modifying
@Query(value = DELETE_BY_POSTID, nativeQuery = true)
void deleteByPostId(Long postId);
}
728x90
'Spring Boot Framework' 카테고리의 다른 글
[P6Spy] p6spy 설정 시 두 번 찍히는 경우 (0) | 2024.02.01 |
---|---|
[SpringBoot] JPA 개발 시 p6spy를 이용해서 쿼리 로그 남기기 (0) | 2024.02.01 |
[Spring Boot] 게시판 #4 - 게시판 + 댓글 (0) | 2023.05.02 |
[Spring Boot] JPA에서 Boolean 처리 ( @Converter, @Convert ) (0) | 2023.04.25 |
[Spring Boot] 게시판 #3 - 게시판 목록 + 페이징처리 (0) | 2023.04.25 |