소개
게시글
질문&답변
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
- 459
질문&답변
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
- 187
질문&답변
2021.08.27
Converter 사용 관련 질문
Enum을 BOOKS, CLOTHES, DIGITAL 이렇게 정의한 것을 lowercase로 하여 테스트 해봣는데, 적용이 안되는데client가 소문자로 입력을 넣었을때도 정상 처리해주고 싶어 질문 드렸었습니다.
- 0
- 4
- 397