트러블 슈팅

23.10.09 항해 99 16기 실전 프로젝트 트러블 슈팅

김용글 2023. 10. 9. 22:34

댓글과 대댓글 코드를 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 타입에서 사용, 
                                      각각 소수점 포함 자리수, 소수의 자리수를 의미