본문 바로가기

JavaFX

[JavaFX] Hibernate Exception in thread JavaFX Application Thread xxx is not mapped [ FROM xxx] 에러

JavaFX Hibernate 매핑 에러

 

 

java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: user is not mapped [ FROM user]

에러가 발생했다.

에러만 봐서는 hibernate  매핑 문제인것 같다.

DB의 테이블명이 user라서 UserVO객체에도 @Table에 user로 해주었는데도 에러가 발생했다.

 

Query query = getSession().createQuery(" FROM user");
@Entity
@Table(name="user")
public class UserVO{
  ...
  @Column(name="userName")
  private String name;
  ...
}

 

 

에러의 원인은 Query에서 FROM의 테이블 명을 입력할 때는 DB의 테이블명이 아닌 도메인 클래스의 명을 써야 한다.

 

Query query = getSession().createQuery(" FROM UserVO");

 

 

이뿐 아니라 정렬을 할때도 마찬가지이다.

DB테이블의 컬럼명을 쓰지 말고 도메인 객체의 id를 써야 한다.

DB테이블의 컬럼명은 userName이고 도메인 객체의 UserVO는 name을 사용하고 있다면 name으로 사용해야 한다.

Criteria crit = getSession().createCriteria(UserVO.class);

crit.addOrder(Order.asc("name"));