JavaFX
[JavaFX] Hibernate Exception in thread JavaFX Application Thread xxx is not mapped [ FROM xxx] 에러
오탄자
2020. 4. 16. 13:37
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"));