profile
개발자가 되는 그날까지
post-thumbnail

JPA 연관관계 매핑 2

일대다 단방향 연관관계 일대다 관계는 위에서 봤던 @OneToMany다. 하지만 만약 @OneToMany로 단방향 관계를 맺는다면 어떻게 될까? 다시 말해 @OneToMany 어노테이션이 있는 필드에 @JoinColumn을 아래 코드처럼 건다면 어떻게 될까? 해당 엔티티는 일대다 단방향 연관관계 매핑을 한 것이다. 하지만, 해당 외래키는 다쪽인 Member에 생긴다. 애당초 @OneToMany 어노테이션은 외래키 생성을 할 수 없다. 그래서 일대다 단방향 연관관계는 권장되지 않는다. 왜냐하면 연관관계 주인 엔티티에서 외래키를 관리하지않고 반대편 엔티티에서 외래키를 관리하기 때문에(데이터베이스 설계에서 1:M관계에서 외래키는 M에 존재하기 때문에) 관리가 부담스럽다. 일대다 양방향 연관관계 일대다 양방향 연관관계는 애초에 다대일 양방향 연관관계와 같기 때문에 존재하지 않는다. 일대일 단방향 연관관계 일대일 관계는 양쪽이 서로 하나의 관계

2023년 6월 20일
·
0개의 댓글
·
post-thumbnail

JPA 연관관계 매핑 1

가장 먼저 JPA를 쓰는 이유부터 알아야 한다. 현재 우리는 SQL Mapper나 ORM 기술들을 이용하여, DB와 연결하여 사용하고 있다. 이중 JPA는 자바 진영의 ORM 기술 표준으로, 과거 JDBC API를 사용해 매핑을 해주던 것을 보다 간결하게 만들어주는 프레임워크이다. 뭐 이전보다 SQL문을 덜 쓴다는 것에 대해 장점을 가져서 JPA를 사용하는 것도 있지만, 가장 큰 문제는 따로있다. 바로 객체와 DB와의 패러다임의 불일치 문제를 해결하기 위해 사용하는 것이다. 객체와 DB와의 패러다임 불일치 자바같은 객체 지향 언어는 추상화, 캡슐화, 정보은닉, 상속, 다형성 등 다양한 장치들을 제공한다. 특히 객체들 간에는 참조를 통해 다른 객체와 연관관계를 가지고, 참조에 접근해 연관된 객체를 조회한다. 반면, 테이블은 외래키(foreign key)를 이용해 다른 테이블과 연관관계를 가지고 조인을 사용해 연관된 테이블을 조회한다. 객체들은 참조가 있

2023년 6월 17일
·
0개의 댓글
·
post-thumbnail

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 [스프링 DB 접근 기술]

스프링 DB 접근 기술 > 순수 Jdbc 스프링 통합 테스트 스프링 JdbcTemplate JPA 스프링 데이터 JPA 순수 Jdbc Jdbc란 Java DataBase Conectivity의 약자로 자바 프로그램이 DB와 연결되어 데이터를 주고 받을 수 있게 해주는 프로그래밍 인터페이스이다. 이렇게 JDBC API로 직접 코딩하는 것은 20년 전 이야기이다. 따라서 고대 개발자들이 이렇게 고생하고 살았구나 생각하고, 정신건강을 위해 참고만 하고 넘어가자. 현재는 JPA나 MyBatis등으로 DB에 접근한다. 환경설정 build.gradle 파일에 jdbc, h2 데이터베이스 관련 라이브러리 추가 스프링 부트 데이터베이스 연결 설정 추가 resources/application.properties Jdbc 리퍼지토리 구현 스프링 설정 변경 DataSource는 데이터베이스 커넥션을 획득할

2023년 1월 5일
·
0개의 댓글
·