게시글
질문&답변
2022.05.18
대상 테이블에 외래키 의 단점
그렇다면 ManyToOne 관계에서 FK가 Many 쪽에 있고 One에 FK가 없으니,One을 조회할때 eager로 데이터를 다 가져와야 할 것같은데One에서 lazy로 가져오는 걸 허용하는 이유가 뭘까요?One에 입장에서 Many측에 데이터가 얼마나 많은지 알 수 없고 하니,다 가져오는데 있어 효율적이지 않으므로(데이터를 안쓸 수도 있으니) lazy로 프록시 객체만 생성하고,이후 해당 데이터를 조회할때 데이터를 가져오는 건데이처럼 OneToOne 양방향에서도 FK를 관리하지 않는쪽에서 다른 대상 테이블에 자신의 PK를 FK로 갖고 있으니, lazy로 가져올 수 있지않나 싶습니다.하이버네이트에서 이 경우는 Many때와 달리 데이터를 바로 eager로 가져오는게 효율적이라고 판단해서 이렇게 설계된 것이라고 생각하면 될까요?lazy로 가져오게 할 수 있을것 같아서 여쭤봅니다.(연관관계 있는 대상 테이블이 뭔지 알고, FK가 무엇인지도 아니)답변주시면 감사드리겠습니다.
- 0
- 2
- 458
질문&답변
2021.09.12
image 전송과 함께 데이터는 json으로 보내고 싶은 경우
또한 validation 부분은 dto로 변환할때 할수 있으면 좋을 것 같은데,이게 불가능할 경우 entity단에서 field에 validation을 적용하는 방법을 사용할 순 있을것 같습니다,
- 2
- 3
- 8.5K
질문&답변
2021.09.12
image 전송과 함께 데이터는 json으로 보내고 싶은 경우
data 입력 값을 아래와 같이 했을 경우 object mapper를 한번만 사용해도 되는것은 확인했습니다. (사진) @PostMapping// @PostMapping(consumes = {MediaType.APPLICATION_JSON_VALUE, MediaType.MULTIPART_FORM_DATA_VALUE}) public ResponseEntity> post( @RequestPart("data") String data, @RequestPart("file") MultipartFile file, @ApiIgnore HttpSession session) throws IOException { Account account = getSessionCheckedAccount(session); if(!file.isEmpty()){ String path = session.getServletContext().getRealPath("/") + "images/" + file.getOriginalFilename(); file.transferTo(new File(path)); }// String o = objectMapper.readValue(data, String.class);// objectMapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true); PostRequestDto postRequestDto = objectMapper.readValue(data, PostRequestDto.class); Long postId = postService.post(postRequestDto.getTitle(), postRequestDto.getDesc(), postRequestDto.getPrice(), postRequestDto.getCategoryTag(), account); return new ResponseEntity(new ResponseOKDto( new PostResponseDto(postId)), HttpStatus.OK); }
- 2
- 3
- 8.5K
질문&답변
2021.08.29
컬렉션 테이블 vs 엔티티로 생성
수업을 더 듣고 보니, 부모테이블? 이라 불러야 할진 모르겠지만, 자체의 생명주기를 갖지 않고, 부모테이블의 생명주기에 따라 관리되어컬렉션 테이블을 사용할 경우 별도로 테이블을 관리할 필요성을 없애줘 유용하다는 생각이 드는데 제 생각이 맞을까요?
- 1
- 1
- 186
질문&답변
2021.08.27
Converter 사용 관련 질문
Enum을 BOOKS, CLOTHES, DIGITAL 이렇게 정의한 것을 lowercase로 하여 테스트 해봣는데, 적용이 안되는데client가 소문자로 입력을 넣었을때도 정상 처리해주고 싶어 질문 드렸었습니다.
- 0
- 4
- 397
질문&답변
2021.08.26
Converter 사용 관련 질문
@Datastatic class Form{ @NumberFormat(pattern = "###,###") private Integer number; @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime localDateTime;} Controller에서는 이런 변환 과정 로직을 넣어주지 않고, 위에서 사용하신 것처럼 Entity에서 적용하는 방식이 더 맞는 방식인 것 같긴 한데, 이렇게 사용하면 내부 로직에서 Entity에 값을 넣어줄 때, enum값을 사용하지 못하고 String으로 직접 넣어줘야 하는것 같아서맞지 않는 방식인것 같기도합니다,
- 0
- 4
- 397
질문&답변
2021.07.30
team 조회시 query 관련
그렇다면 추가적으로 궁금한 것은, 실무에서 어떤 상황에서는 eager로 받아야 하는 case도 있을 것같은데, 어떨때 eager처리하는 지 궁금합니다.
- 0
- 3
- 215
질문&답변
2021.07.30
team 조회시 query 관련
아 제가 미리 fetct lazy 옵션을 줘서 그런거였네요 확인했습니다.
- 0
- 3
- 215
질문&답변
2021.07.27
mockMvs with 메서드 참조 관련
해결했습니다.코드에 실수가 있었네요실수 덕분에 패키지도 까보고 좋은경험했습니다
- 0
- 2
- 650
질문&답변
2021.07.27
mockMvs with 메서드 참조 관련
해당 패키지 내에 with있는것도 확인했는데 리빌드를 하면 아래 에러가뜹니다. java: cannot find symbol symbol: method with(org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.CsrfRequestPostProcessor) location: interface org.springframework.test.web.servlet.ResultActions (사진)
- 0
- 2
- 650