728x90
반응형
JPA를 사용하기 위해 테이블 Entity class를 만들고 구동시켰더니 오류가 났다.
java.sql.SQLSyntaxErrorException: Table ' 테이블이름 ' doesn't exist
해결방법은
Entity class파일에서 @Entity 어노테이션에 값을 설정하면 된다.
@Entity(name="USER_INFO")
public class UserInfo {
...
}
이 Entity는 DB테이블에 대응하는 클래스이기 때문에, DB테이블과 맵핑하기 위해서는 꼭 붙여야 한다.
속성으로 name을 사용하면, JPA에서 사용할 Entity 이름을 지정하는 것이다. 지정을 하지 않으면 클래스 이름을 그대로 사용한다.
여기서 말하는 Entity이름이라고 하면, 감이 안올 수 있으니 다음과 같은 예시를 작성한다!
@Entity
public class UserInfo {
...
}
이렇게 되면, JPA에서 쿼리로 수행할 때는 클래스 이름을 그대로 사용하여 조회한다.
SELECT * FROM UserInfo
name 속성을 사용했을 때의 예시이다!
@Entity(name="USER_INFO")
public class UserInfo {
...
}
name의 속성값으로 쿼리 수행을 한다.
SELECT * FROM USER_INFO
즉, 현재 상황 같은 경우 DB 테이블의 이름이 USER_INFO로 되어있었기 때문에 이렇게 name속성을 이용해 DB에 정의되어있는 테이블로 조회해야 했던 것이다.
728x90
반응형