JAVA/JAVA | Spring 학습기록

[SQL][TDD] ERROR 1146 (42S02): Table doesn't exist 해결

kth990303 2021. 8. 29. 17:53
반응형

로그인 구현을 위해 해시함수를 구현하여 encrypt를 해주는 Salt 기능을 만들기 위해 테스트를 하던 중 

[SQL] ERROR 1146 (42S02): Table doesn't exist 에러가 발생했다.

 

그 이유는 아래 Salt Entity가 존재하는데,

Salt 테이블이 만들어지지 않기 때문이다.

@Entity
@Getter @Setter
public class Salt {
    @Id @GeneratedValue
    private Long id;
    @NotNull
    private String salt;
    public Salt() {}
    public Salt(String salt) {
        this.salt = salt;
    }
}

참고로 이 Salt Entity는 Member Entity와 1:1 연관관계 매핑이 돼있는 상태이다.

@Entity
@Getter @Setter
@NoArgsConstructor
public class Member {
    //...

    @OneToOne(cascade = CascadeType.ALL)
    @JoinColumn(name="salt_id")
    private Salt salt;

    //...
}

해결방법

물론 테이블 자체를 직접 만드는 방법도 있겠지만,

application.properties에서 spring.jpa.hibernate.ddl-auto=nonespring.jpa.hibernate.ddl-auto=update로 바꿔주면 해결된다. 

외래키로 연관관계 매핑을 해놓았기 때문에 drop table 또한 되지 않는다.


Salt 및 비밀번호 encoding은 아래 블로그 포스팅에서 확인할 수 있다.

https://velog.io/@ehdrms2034/Spring-%EB%B9%84%EB%B0%80%EB%B2%88%ED%98%B8-%EC%95%94%ED%98%B8%ED%99%94%EC%97%90-%EB%8C%80%ED%95%9C-%EA%B3%A0%EC%B0%B0

 

[Spring] 비밀번호 암호화에 대한 고찰

그냥 쓰는 글이다 😂로그인 서버를 제작하다보면 문득 드는 생각이 있다.유저의 비밀번호를 어떻게 저장할 것인가내가 비밀번호를 password로 보냈다고 해도 디비에 그대로 password로 저장하면 안

velog.io

 

예전에는 에러를 보면 공포에 떨어서 코딩을 중단하고 도망쳤는데,

요즘 에러를 보는 눈이 트여서 그런지 공포감이 좀 줄어들었다.

 

앞으로 개발도 백준만큼 열심히 해서 실력 늘리든지 해야겠다.

 

반응형