CrudRepository 6

[Spring] 예외 처리시 Throws vs try-cat-finally

예외처리를 하는 방법으로 Throws와 try-cat 두 가지 방법이 있는데, 어떤 방식으로 예외처리를 사용하는 것이 좋을지 찾아보게 되었습니다. 어떤 예외처리를 사용할지에 대해 간단하게 다음 2가지 기준이 있었습니다. catch문에서 유의미한 처리를 할 수 있는 경우만 try-catch 사용 input parameter로 인한 오류의 경우 throws Exception 사용 CrudRepository Exception CrudRepository를 사용할 때는 따로 exception을 확인할 필요가 없는게 DataAccessException에 대해 built-in되어 있다고 합니다. NonTransientDataAccessException - DB에 존재하지 않는 id의 접근과 같이, 예외 원인이 정정되..

[Spring] CrudRepository의 save vs saveAll

프로젝트를 하면서 데이터를 저장하는 부분을 구현하고 있었습니다. CrudRepository에는 Iterable을 input으로 여러 tuple을 저장하는 메서드인 saveAll을 제공하고 있습니다. 그런데 제가 구현하는 부분에서는 loop에서 여러 tuple을 save로 저장하고 싶었습니다. 두 메서드의 속도에 차이가 있을까요? save가 오래걸리지 않을까? 저는 단순하게 여러번 쿼리를 날리는 것보다 한 번 쿼리를 날리는 것이 더 시간이 덜 소요될 것이라 생각했습니다. 예를 들어 100개의 tuple을 저장해야한다고 했을 때, save 메서드로 tuple 하나마다 데이터베이스에 요청을 날리면, 데이터베이스는 쿼리가 올 때마다 해당 데이터를 저장하기위해 저장장치에 접근할 것이라 생각했기 때문입니다. sav..

[Spring] CrudRepository를 이용한 table join

지금까지 Spring boot에서 CrudRepository를 사용할 때 다음과 같은 루틴으로 사용하였습니다. DB Table과 일치하는 DAO를 만든다. 해당 객체가 사용되는 CrudRepository Interface를 작성한다. 그런데 join된 Table에 대한 정보를 읽어와야하는 일이 생겼습니다. 스택오버플로우에서 아래와 같은 글을 발견하여 정리해봅니다. https://stackoverflow.com/questions/43891571/crudrepository-join-single-field-from-other-table-to-entity-as-readonly Crudrepository / Join single field from other table to entity as readonly Be..

[Spring] CrudRepository findById가 안될 때

현상 CrudRepository의 메서드를 사용할 때 데이터를 불러오지 못하는 상황이 발생했습니다. 원인을 찾기 위해 확인해본 내용은 아래와 같습니다. DB에 데이터가 제대로 들어갔는지? - Mysql Workbench를 통해 table 데이터 확인 DAO의 String과 DB table의 varchar가 호환이 되는지? - 호환 가능 findById의 arg가 정상인지? - 코드와 같은 SQL 사용시 데이터 조회 가능 해결 Hibernate 로그를 살펴보니, SQL문의 table 이름에 문제가 있다는 것을 확인했습니다. DB의 table 이름이 TistoryInfo인데, 로그에 따르면 tistory_info라는 table에서 데이터를 찾고 있었습니다. 이러한 문제는 아래 글에서 Camel 방식이 und..

[Daily Report] 22.01.04 - data.sql 작성 및 DB 연동 테스트

Memo Progress 정리 l 목표 - [1주] Tistory API를 통한 데이터 수신 - [2주] 데이터베이스와 sync / 비교 - [3주] 데이터베이스에 추가 / 삭제 / 수정 l 현재 상태 - 데이터베이스 연동 확인 l 오늘 할 일 - data.sql 작성 - Tistory API 데이터 가져오기 테스트 - Tistory API DTO 작성 Done l data.sql 작성 - 테스트 데이터 입력 l DB 연동 테스트 - DB table underscore 문제 해결 To-do l Tistory API 테스트부터 진행하기 - DB에서 access token 가져오기 - Tistory API 전송 (글 목록) - 데이터 읽어보기 l Tistory API마다 DTO 작성 - 필요한 데이터 확인 ..

정리하기/DR 2022.01.04