22강 관련질문
305
13 asked
Comment객체에는 Article객체를 하나의 column으로 가지고 있는데 이는 외래키와의 매핑하고 매핑되는 column을 article_id라고 정하는 것은 이해를 했습니다 하지만
Comment a = new Comment(1L, article, "Park", "굳 윌 헌팅");
위 코드처럼 article을 인수로 넘겨주면 article안에는 id, title, content라는 여러 column이 있는데 이중에 왜 id값이 선택되는지 궁금합니다
예시로 data.sql에서
INSERT INTO comment(article_id, nickname, body) VALUES(4, 'Park', '굳 윌 헌팅');
이런 sql문을 넣는데 article_id라는 column은 Article타입인데 정수(Long)를 넣어도 어떻게 성립이 되는건지 궁금합니다.
Answer 2
1
해당강의는
스프링부트 입문강의로
JPA와 관련된 자세한 내용은
다루지 않습니다만,
간단히 말씀드리자면
JPA가 자동으로 기본키(PK)를 찾고
이를 테이블에 알아서 저장해 줍니다
Article 엔티티 선언 시
@Id로 선언한 필드가
자동으로 PK로 인식되게 됩니다
0
안녕하세요, 인프런 AI 인턴입니다.
Comment 클래와 Article 클래스 사이의 관계를 맺을 때, 구현한 ORM(Object-Relational Mapping) 기술에 의하여 객체와 테이블 간의 매핑이 정의됩니다. Spring에서는 @Entity 어노테이션을 사용해 클래스를 엔티티로 선언하고, 이 클래스의 필드를 테이블의 컬럼에 매핑합니다. 때문에, 여러분의 Comment 클래스에는 Article 객체를 참조하는 필드가 있고 이 필드는 @ManyToOne 또는 @JoinColumn 같은 어노테이션을 통해 외래키 컬럼에 매핑됩니다.
Article 객체를 Comment 객체에 할당하게 되면, ORM 프레임워크(예: Hibernate)는 Article 객체의 식별자(Primary key)를 사용하여 데이터베이스의 외래키 컬럼(article_id)에 값을 설정합니다. 그렇기 때문에 실제 데이터베이스 트랜잭션은 Article ID 값만을 외래키로서 사용하게 됩니다.
INSERT INTO comment(article_id, nickname, body) VALUES(4, 'Park', '굋 윌 헌팅'); SQL 명령문과 같이 수동으로 데이터를 삽입할 때는 외래키로 사용될 Article의 ID 값을 직접 지정합니다. article_id 컬럼은 실제로는 Article 테이블의 기본키에 해당하는 ID 값을 저장하기 위한 컬럼이기 때문에 정수(Long) 형태의 ID 값이 사용됩니다.
스프링 부트 또는 ORM 관련 문서를 참고하시면 여러분이 작성하는 매핑과 트랜잭션 과정에 더 자세한 이해를 할 수 있습니다.
참고 자료:
- Spring Boot Reference Documentation v3.1.5: SQL Databases
- Spring Data JDBC - Reference Documentation v3.1.5: ID Generation
23강 댓글 생성 메소드 오류
0
82
2
15.14 강 에러 문제 질문
0
54
1
21강 자율 과제중 update
0
116
2
28강 DB mysql연동 관련 질문
0
279
1
27강 관련 질문
0
198
1
21강 create테스트 질문
0
357
1
9강 질문 있습니다
0
277
1
로그창에 내용이 출력이 안됩니다.
0
366
1
index()함수 질문있습니다.
0
358
3
수정완료를 눌렀을때 첫번째 데이터는 전송이 안되고 다시 수정완료 버튼을 눌러야 데이터가 전송 됩니다.
0
471
1
강의와 책 질문
0
433
1
20강 질문있습니다.
0
397
1
20강에서 Article create 부분
0
287
1
16강 질문있습니다.
0
264
1
mustache의 article의 정의가 뭔가요?
0
338
2
17강 Unique index or primary key violation
1
1826
2
8강 에러 질문있습니다.
0
268
1
15강 DB연결
0
341
1
추상클래스를 사용 할 수있을까요?
0
241
1
22강 과제 질문
0
374
1
22강 질문입니다.
0
368
1
19강 create POST 500 에러
0
454
1
19강 JSON create 메서드 질문이여!!
1
540
1
15강 data.sql코드가 작동하지 않습니다.
1
659
2

