본문 바로가기

Spring16

spring JPA 엔티티 Entity 어노테이션 정리 @ManyToOne 1:다 관계의 엔티티에서 다쪽 엔티티에 설치되는 필드의 어노테이션 DB 테이블 적으로 보면 외래키를 가지고 있으므로 JoinColumn 또한 해주어야 함 @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "product_id") // 외래키 이름 private Product product; @OneToMany 1:다 관계의 엔티티에서 1쪽 엔티티에 설치되는 필드의 어노테이션 mapped by를 통해 다쪽의 엔티티에서 어떠한 값과 매핑이 되는지 표시 @OneToMany(fetch = FetchType.LAZY, mappedBy = "product") private List orders = new ArrayList(); @Embeddable .. 2021. 12. 24.
Postmans 포스트맨 / Curl을 통해 보내는 request spring boot를 통해 API 개발을 하다가 예상치 못한 문제를 만났다 이슈 회원가입 등 DB에 insert를 진행하는 JPA 로직이 포함되어 있는 API는 모두 POSTMAN(포스트맨)을 통해서 request를 보낼 때와 터미널의 Curl을 이용해서 보낼때 response가 다르다는 이슈였다. 포스트맨을 통해 request & response를 점검한 후에 view document - API 명세서 자동 생성기를 통해서 프론트엔드 담당 친구에게 주는 방식으로 작업을 하고 있었다. 포스트 맨을 통해 API에 요청을 보내면 정상 response가 돌아오지만 API 명세서에 써져있는 curl을 가지고 터미널에서 request를 보내면 위와 같이 500 error를 받게되었다. 왜 같은 API인데 POS.. 2021. 10. 4.
[JPA] JPA 세팅 및 MySQL 8 아마존 RDS 연결하기 by Spring Boot build.gradle 에 JPA / MySQL 의존성 세팅하기 방법은 여러가지가 있겠지만 내가 시도한 방법은 두가지다 > Spring Boot Initializer로 작업 환경 만들 때 추가하기 https://start.spring.io/ 이곳에서 웹을 통해서 스프링 프로젝트 생성이 가능한데 이때, jpa를 추가한다 > Maven Repository에서 가져와 추가하기 https://mvnrepository.com/ 에서 스프링에 필요한 라이브러리들을 가져와 추가할 수 있다. JPA도 여기서 검색하면 나온다. build.gradle 파일에서 mavenCentral()이라고 쓰여있는 부분이 JPA 상세 코드 혹은 패키지가 존재하는 사이트 서버와의 인터페이스 (통로) 역할을 하는 메서드가 아닐까 싶다 re.. 2021. 9. 10.
[JPA] JPA 등장 배경 + ORM에 대한 이야기 JPA 등장 배경 JDBC API로 언제까지 SQL문 짜고 업데이트 사항 발생하면 하나씩 DAO에 가서 수정할래? JAVA에서는 JDBC API를 이용하여 Web Application에서 DB로 부터 data를 추출해서 가져와야 했다. 직접 SQL을 작성한 후 JDBC API를 이용하여 SQL문을 전달하는 방식이다. 아래는 JDBC template을 활용하여 상품 DB와 상품 Service 코드 사이에서 DB를 가져오고 매핑해주는 DAO 계층이 담긴 class의 메서드 중 하나이다. public List getProductHomeTodayClass(){ String query = "SELECT OnlineClass.idx, thumbnail, title FROM OnlineClass\n" + "WHERE.. 2021. 9. 10.