23.10.09 항해 99 16기 실전 프로젝트 트러블 슈팅
댓글과 대댓글 코드를 Postman으로 Test 하다가 트러블 슈팅이 발생했다
1. 발생
댓글과 대댓글의 nickname이 PK로 설정되었다
2. 원인
댓글(Comments)과 대댓글(Replies) Entity 모두nickname을 Users의 Entity에서 가지고오는데
별도의 @Colunm으로 nickname 을 만들어서 생긴 듯하다
3. 해결
@Colunm 어노테이션을 지우니 PK 설정이 풀렸다
@Colunm
테이블의 컬럼값을 나타내며 굳이 선언하지 않더라도 해당 클래스의 필드는 모두
컬럼이 된다.
사용하는 이유는 기본 값 외에 추가로 변경이 필요한 옵션이 있을 경우 사용한다
@Column의 속성
1. name : 맵핑할 테이블의 컬럼 이름을 지정
2. insertable : 엔티티 저장시 선언된 필드도 같이 저장
3. updateable : 엔티티 수정시 이 필드를 함께 수정
4. table : 지정한 필드를 다른 테이블에 맵핑
5. nullable : NULL을 허용할지, 허용하지 않을지 결정
6. unique : 제약조건을 걸 때 사용
7. columnDefinition : DB 컬럼 정보를 직접적으로 지정할 때 사용
8. length : varchar의 길이를 조정합니다. 기본값으로 255가 입력
9. precsion, scale : BigInteger, BigDecimal 타입에서 사용,
각각 소수점 포함 자리수, 소수의 자리수를 의미