2011-10-24 2 views
0

난 그냥 몇 가지 물건을 테스트하는 기본적인 최대 절전/스프링 프로젝트를 설정합니다. 나는 WAMP를 사용하여 MySQL 데이터베이스를 사용한다.hibernate annotation을 올바르게 사용하는 방법은 무엇입니까?

이들의 모든 클래스입니다 : http://codepaste.net/7pwmtx

이 내 빈 정의와 치 파일 : http://codepaste.net/4iz7jb

POM 조금 지저분하지만이 문제입니다 : 내가 내 사투리를 설정하는 것이 생각 왜냐하면 내가 db에 무언가를 추가 할 때 오류가 없기 때문입니다. hql에서 find를 사용할 때 오류가 발생합니다. 나는 그것을 넣고있는 같은 장소에서 최대 절전 모드 isnt 데이터를 검색하는 것 같아. 왜이게 왜 효과가 없나요? 그런데

는 콘솔 출력했다 :

Exception in thread "main" org.springframework.orm.hibernate3.HibernateQueryException: hobject is not mapped [from hobject]; nested exception is org.hibernate.hql.ast.QuerySyntaxException: hobject is not mapped [from hobject] 
    at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:660) 
    at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412) 
    at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:411) 
    at org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374) 
    at org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:912) 
    at org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:904) 
    at hibernate.dao.SpringHibernateOperatorImplementation.getAllRows(SpringHibernateOperatorImplementation.java:24) 
    at hibernate.main.HibernateMain.main(HibernateMain.java:22) 
Caused by: org.hibernate.hql.ast.QuerySyntaxException: hobject is not mapped [from hobject] 
    at org.hibernate.hql.ast.util.SessionFactoryHelper.requireClassPersister(SessionFactoryHelper.java:181) 
    at org.hibernate.hql.ast.tree.FromElementFactory.addFromElement(FromElementFactory.java:110) 
    at org.hibernate.hql.ast.tree.FromClause.addFromElement(FromClause.java:93) 
    at org.hibernate.hql.ast.HqlSqlWalker.createFromElement(HqlSqlWalker.java:277) 
    at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromElement(HqlSqlBaseWalker.java:3056) 
    at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromElementList(HqlSqlBaseWalker.java:2945) 
    at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromClause(HqlSqlBaseWalker.java:688) 
    at org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:544) 
    at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:281) 
    at org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:229) 
    at org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:251) 
    at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:183) 
    at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:134) 
    at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:101) 
    at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:80) 
    at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:94) 
    at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:156) 
    at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:135) 
    at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1650) 
    at org.springframework.orm.hibernate3.HibernateTemplate$30.doInHibernate(HibernateTemplate.java:914) 
    at org.springframework.orm.hibernate3.HibernateTemplate$30.doInHibernate(HibernateTemplate.java:1) 
    at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:406) 
    ... 5 more 
+0

이 오류는 어떤 클래스가 최대 절전 모드로 관리되어야하는지 또는 적어도 최대 절전 모드로 관리되는 hobject라는 클래스가 없다는 것을 알려주지 않았 으면 여기에 구성을 붙여 넣으십시오. –

+0

나는 주석으로 구성되어 있으므로 구성 파일을 사용하십시오. .xml 파일을 살펴보면 주석을 사용하고있는 것을 볼 수 있으며 beandefinitionfile에 속성을 설정했다는 것을 알 수 있습니다. –

+0

하지만 "HObject에서"대신 String hql = "from hobject"를 사용하는 이유는 무엇입니까? –

답변

1

파일을 hibernate.cfg.xml로하는 엔티티 클래스 hibernate.dao.HObject를 추가합니다. 어노테이션 기반 구성을 사용하는 경우에도 유용합니다.

cfg 파일에 추가하는 것을 건너 뛰려면 스프링을 사용하는 경우 here이라는 접근 방법을 사용할 수 있습니다.

+0

Worked, thanks! –

관련 문제