Spring/spring_유용한것 12

spring rest app 예외 처리(global excetption handler) 방법

spring에서 잡다하게 많이 나오는 애러 정리해서 출력하기 global exception 생성하기 @ControllerAdvice // 예외 처리를 위한 annotation public class GlobalExceptionHandler extends ResponseEntityExceptionHandler { // handle specific exceptions @ExceptionHandler(ResourceNotFoundException.class) public ResponseEntity handleResourceNotFoundException( ResourceNotFoundException exception, WebRequest webRequest) { ErrorDetails errorDetails..

Rest api java filter

리스트에서 필터로 검색하여 json return @GetMapping("/name/{name}") public Optional studentFindByEmail(@PathVariable("name") String name) throws Exception { Optional student = Optional.ofNullable(stdList.stream() .filter(std -> std.getName().contains(name)) .findAny() .orElseThrow(() -> new Exception("찾는 이름이 없습니다."))); return student; } @GetMapping("/list/{email}") public List studentFindByEmailList(@PathVar..

jpa one to many 관련

애러 발생 detached entity passed to persist: sb.lec total.hibernate Entities.oneToMany many to one 측면에서 데이터가 생성되지 않은 상태에서 one to many에 저장하거나 데이터 가 생성되기 전에 foreign key를 설정하려 하면 발생(어찌 보면 당연한...) many to one에 모든 데이터가 저장되고 난 후에 one to many에 리스트를 저장해야 함 결국 순서가 중요 * one to many가 기본으로 lazy가 설정되어 있어 @Transactional 을 해야 수행됨 (이를 피할려면 eager로 해야함) * 참고로 test에서 수행시 @Transactional을 하면 수행 후 데이터는 지워짐... 관련 코드... @E..

jpa tip

jpa에서 기본제공하는 crud를 사용하는 방법 extends 시에 적용한 class를 인식해서 동작함 findByFirstNameLikeAndLastNameOrEmailLike 등 과 같이 연속해서 사용가능 (알아서 sql 을 생성해줌) @Query 를 통해 필요한 sql을 작성 가능... @Repository public interface PersonRepository extends CrudRepository { List findByLastNameLike(String lastName); } 위와 같이 하면 @Query("from Person p where s.lastName = '%포함문자%'" 와 같은 효과가 있음 실제 사용시 List personList = personRepository.findB..

html input type

https://developer.mozilla.org/ko/docs/Web/HTML/Element/input : 입력 요소 - HTML: Hypertext Markup Language | MDN HTML 요소는 웹 기반 양식에서 사용자의 데이터를 받을 수 있는 대화형 컨트롤을 생성합니다. 사용자 에이전트에 따라서 다양한 종류의 입력 데이터 유형과 컨트롤 위젯이 존재합니다. 입 developer.mozilla.org 기본 적인 input 만 잘 사용해도 불필요한 코드를 줄이고 활용도를 높일 수 있음.... html의 form 내에서 input type이 date나 datetime-local 일때 date는 String 으로 받으면 변환이 되나, datetime-local은 @RequestParam("okn..