이전다음 etc QGIS를 활용한 대한민국 행정구역 위,경도 데이터 추출하기 더보기 데이터베이스 [mysql] concat 사용 시 null이 들어갈때 ifnull 사용법 더보기 JPA JPA truncate 사용법 더보기 데이터베이스 [mysql] UPDATE문 서브쿼리(select 결과) 사용법 더보기 Spring Spring AOP를 활용한 권한 체크 JPA Executing an update/delete query 에러 JPA JPA truncate 사용법 데이터베이스 스프링 부트 H2 디비 설정 데이터베이스 [mysql] concat 사용 시 null이 들어갈때 ifnull 사용법 리스트 예시: 게시물이 존재할 경우 3건을 노출합니다. Spring Spring AOP를 활용한 권한 체크 Controller 단에서 권한 체크를 한다면 보통 아래와 같이 if문으로 체크를 할 것 입니다. 여러 곳에서 이러한 if문으로 계속 처리하다보면 중복이 많아지는 문제가 발생해 aop를 활용해 어노테이션으로 처리하는 방법을 알아보도록하겠습니다. @GetMapping public String example(@AuthenticationPrincipal UserPrincipal account){ Grade grade = account.getGrade(); if(grade != Grade.HEAD){ throw new UnauthorizedException(); } return ""; } aop dependency는 spring-boot-starter를 dependency햇다면 안에 내장되어 있습니다. 사용할 .. JPA Executing an update/delete query 에러 Executing an update/delete query; nested exception is javax.persistence.TransactionRequiredException: Executing an update/delete query 에러가 발생하면 해당 메소드에 @Transactional 어노테이션을 추가해주자. Crud repository의 구현체는 @Transactional(readOnly =true)가 정의되어 있기 때문에 select같은 경우는 상관없지만 update / delete 쿼리 같은 경우 @Transactional을 재정의 해 readOnly =false로 변경해주어야한다. 디폴트가 false기 때문에 @Transactional만 재정의 해주면 된다. JPA JPA truncate 사용법 테이블 전체 로우를 날리고싶을 때 delete() ,deleteAll()을 사용하면 데이터가 많은 경우 너무 느린 단점이 있다. truncate를 사용하면 빠르게 전체 로우를 삭제할 수 있으며 index는 1부터 새로 시작한다. @Transactional @Modifying @Query(value = "truncate table a", nativeQuery = true) void truncate(); Spring AOP를 활용한 권한 체크 Executing an update/delete query 에러 JPA truncate 사용법 스프링 부트 H2 디비 설정