애플리케이션에서 데이터 접근 계층을 거쳐, 데이터베이스에 도달하는 과정이 중요하여
JPA 플로우에대해 다시 언급하고자 한다.
결국 자바로만 DB를 관리하려면 JPA를 사용해야하는 것이다.
객체 파일
을 기준으로 엔티티가 만들어 진다는 것이다그럼 하나의 예시를 들어보자
@Entity // 그외 필요한 게터,세터 생략
class Test1 {
long test1Id = 5;
String name ="test";
}
@Entity // 그외 필요한 게터,세터 생략
class Test2 {
long test2Id = 5;
long testId = // Test1의 Id 값을 넣고자한다.
}
id
를 외래키로 갖는 Test2클래스(엔티티) 이다. Test.class
를 불러오고, getTestId()
메소드로Test1.getTestId()
허나, java 클래스는 엔티티.
즉, DB테이블의 Column을 나타내는 필드만 들어가고,
실제 행이 추가되는 경우는 클래스파일을 사용하는게 아닌, 인스턴스(행 추가)를 만들어 줘야한다.
Test1
클래스는 1번클래스라 칭하고, Test2
클래스는 2번 클래스라고 칭하겠다.일대일 매핑
하는 경우이다.하지만, 실제 인스턴스끼리 연결해주는 방법이 없다.
getter()메소드도 불가능 하다.
class
타입과 class
타입으로 연결시키는 것은 이해가지 않았었다.class
타입으로 컬럼을 만들어 연결시키는 것이 이해가 되었다.mappedBy
로 양방향 연결을 할 수 있으며, 해당 변수명과 일치하면 클래스에서 찾아 매핑한다.자연스럽게 일대다 관계도 이해가 되었다.