분류 전체보기 98

[JPA] 칼럼명 _(언더바)자동 생성 설정 변경(CamelCase로 사용)

h2로 테스트 잘 하고 rds의 mysql 연결도 잘 되는걸 확인하고 나서 spring이랑 mysql이랑 연결하여 api 테스트를 하는데, 칼럼명이 자동으로 변경되는 것을 확인하였다. 가령 MemberId로 설정하면 member_id가 되거나 하는 형식으로 CamelCase -> underscore로 자동 변환되었다. DB를 내가 생성한게 아니라서 spring단에서 자동 변환을 막아야했고, 방법도 알아보고싶었다. application.yml에 다음과 같은 속성을 추가해주면 된다. jpa: hibernate: naming: implicit-strategy: org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyJpaImpl physical-strateg..

java/JPA 2022.11.01

[JPA] 단방향 매핑 CASCADE 설정하기

코드스테이츠 프리프로젝트 중, 단방향 매핑으로 설정을 해놨는데 CASCADE를 적용시키고 싶었다. 하지만 일반적으로 CASCADE 설정할 때는 양방향 매핑 후 참조되는 엔티티에서 설정을 해주었는데, 단방향이니 참조되는 엔티티에는 아무런 정보가 없어서 설정이 불가능해서 찾아보았다. 다음과 같은 설정이 있어서 적용시켰더니 정상적으로 동작하는 것을 확인할 수 있었다. @OnDelete(action = OnDeleteAction.CASCADE)

java/JPA 2022.10.29

[Spring] 서버에서 get 요청으로 이미지 전송

프로젝트 내용 중 get 요청을 받아서 aws 서버 안에 저장된 이미지를 전송하는 기능을 구현해야했다. 해당 내용으로 검색을 하니 보통 MultipartFile을 이용하여 전송하는 경우가 많았는데, postman으로 get 요청을 해서 바로 이미지를 확인할 수 있도록 구현하고 싶었기 때문에 다른 방법으로 구현하였다. Service @Transactional public byte[] pathToImages(String path) throws IOException { InputStream imageStream = new FileInputStream(path); byte[] imageByteArray = IOUtils.toByteArray(imageStream); imageStream.close(); retu..

java/spring 2022.10.18

[JPA] ddl-auto 옵션 설정

며칠 전에 로컬에서 테스트하던 프로젝트를 서버로 올렸다. 그 과정에서 수 많은 에러가 있었는데... 아쉽게도 카카오 데이터센터 화재로 티스토리까지 막히면서 포스팅하지 못했고, 결과적으로 어떤 오류들이 있었는지 기억이 나질 않는다ㅠ 아무튼 aws 서버에 올리면서 db 또한 rds 인스턴스와 연결시켰다. 그런데 spring.jpa.hibernate.ddl-auto: create 설정을 건드리지 않고 연결시켜버렸다. 당연히 테이블 내역 다 날아가고... 다행히 팀원분이 스냅샷을 따 놓으셔서 설정 찾아보면서 1시간만에 복구하였다. 스냅샷 말고도 복구 방식이 좀 더 있는것 같았다. 찾아보니까 이런 실수를 하시는 분들이 종종 계셨던 것 같다. 요런 사소한 실수로 데이터 날려먹는 일이 없었으면 좋겠다.

java/JPA 2022.10.18

69 & 70 일차 후기

1. 계획 단계 - 정규학습시간 전 오늘 나의 학습 목표는 무엇인가요? Project Reactor & Spring WebFlux 개요 오늘 학습할 내용 중에 이미 알고 있는 내용은 무엇인가요? X 2. 점검 및 평가 단계 - 정규학습시간 후 오늘 학습 내용 중 새롭게 배운 내용은 무엇인가요? Project Reactor & Spring WebFlux 정의 오늘 새롭게 학습한 내용을 다른 사람에게 설명할 수 있나요? 네 오늘 학습한 내용 중 아직 이해되지 않은 불확실한 내용은 무엇인가요? 그냥 이런게 있다 정도의 개념만 배운 느낌. 학습했다고 할 수 없는 수준이라고 생각한다. 이해되지 않은, 불확실한 내용을 보완하기 위해서 나는 무엇을 할 수 있을까요? 필요가 생기면, 충분한 기간을 가지고 확실하게 공부..

68일차 후기

1. 계획 단계 - 정규학습시간 전 오늘 나의 학습 목표는 무엇인가요? 리액티브 프로그래밍 개념 오늘 학습할 내용 중에 이미 알고 있는 내용은 무엇인가요? X 2. 점검 및 평가 단계 - 정규학습시간 후 오늘 학습 내용 중 새롭게 배운 내용은 무엇인가요? 리액티브 프로그래밍 개념 오늘 새롭게 학습한 내용을 다른 사람에게 설명할 수 있나요? 네 오늘 학습한 내용 중 아직 이해되지 않은 불확실한 내용은 무엇인가요? 리액티브 프로그래밍 실습(적용)법 이해되지 않은, 불확실한 내용을 보완하기 위해서 나는 무엇을 할 수 있을까요? 다음 강의 수강 나의 오늘 학습 만족도는 몇점인가요? 80