# @DynamicInsert

3개의 포스트

SpringData JPA 다이나믹하게 사용하기 (DynamicInsert, DynamicUpdate)

@DynamicInsert Insert 쿼리를 날릴 때 null 인 값은 제외하고 쿼리문이 만들어진다. 적용 방법 Entity 에 @DynamicInsert 어노테이션을 붙이면 됨 @DynamicUpdate 이 어노테이션을 엔티티에 적용하게 되면 Update 쿼리를 날릴 때 null인 값은 제외하고 쿼리문이 만들어진다. 적용 방법 Entity 에 @DynamicUpdate 어노테이션을 붙이면 됨

2023년 7월 28일
·
0개의 댓글
·

어노테이션2 annotation

@DynamicInsert : 해당 어노테이션을 엔티티에 적용시켜 삽입 또는 수정 쿼리를 동적으로 만드는 방식이다. 이 어노테이션을 적용하게 되면 Insert 쿼리를 날릴 때 null인 값은 제외하고 쿼리문이 만들어진다. @RequestMapping : 우리는 client에서 오는 요청을 처리하기 위한 api url을 매핑할 때 Spring의 @RequestMapping이라는 어노테이션을 사용한다. Spring은 사용자의 편리를 위해 RequestMapping을 http에서 지원하는 4가지 method인 @GetMapping, @PostMapping, @PutMapping, @DeleteMapping과 추가적으로 @PatchMapping까지 여러가지 방법의 매핑 방식으로 확대하여 제공하기도 한다. RequestMapping은 요청이 들어왔을 시에 컨트롤러와 매핑해주고, 그 컨트롤러를 실행시켜 응답을 받는다.

2022년 8월 9일
·
0개의 댓글
·

[Spring JPA] JPA에서 insert하는 경우 DB의 default값이 적용되지 않을 때 (@DynamicInsert)

상황 환경: Spring JPA 상황: JPA를 사용하여 DB에 insert를 하는데, DB column의 default값이 적용되지 않고 null값이 들어가는 경우를 발견하였다. 예시 Task DB의 'type' column은 default가 'basic'으로 되어 있는 상황 위의 코드를 실행하였을 때 기대값은 task의 type값이 'basic'으로 DB에 저장되어 있는 것이었지만, 실제로는 null값이 들어가있었다. 원인 Insert시 @Entity 객체의 필드를 따로 지정해주지 않으면, 해당 필드의 값은 default값이 적용되는 줄 알았지만, 실제로는 필드에 null값이 들어가게 된다. 결론 따라서, null인 필드값이 insert시 제외되게 하기 위해서는 @Entity 객체에 @DynamicInsert 라는 어노테이션을 붙여줘야 한다. 참고 위와 같은 상황은 update 쿼리를 날릴 경우에도 마찬가지이기 때문에,

2022년 1월 1일
·
0개의 댓글
·