2013-03-25 4 views
0

HQL 문에 몇 가지 문제가있어서 내 데이터베이스에서 모든 그룹을 검색합니다.Hibernate 객체가 매핑되지 않았습니다.

org.hibernate.hql.internal.ast.QuerySyntaxException: Group is not mapped [from Group] 
    at org.hibernate.hql.internal.ast.util.SessionFactoryHelper.requireClassPersister(SessionFactoryHelper.java:180) ~[hibernate-core-4.1.6.Final.jar:4.1.6.Final] 
    at org.hibernate.hql.internal.ast.tree.FromElementFactory.addFromElement(FromElementFactory.java:110) ~[hibernate-core-4.1.6.Final.jar:4.1.6.Final] 
    at org.hibernate.hql.internal.ast.tree.FromClause.addFromElement(FromClause.java:93) ~[hibernate-core-4.1.6.Final.jar:4.1.6.Final] 
    at org.hibernate.hql.internal.ast.HqlSqlWalker.createFromElement(HqlSqlWalker.java:324) ~[hibernate-core-4.1.6.Final.jar:4.1.6.Final] 
    at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromElement(HqlSqlBaseWalker.java:3291) ~[hibernate-core-4.1.6.Final.jar:4.1.6.Final] 
    at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromElementList(HqlSqlBaseWalker.java:3180) ~[hibernate-core-4.1.6.Final.jar:4.1.6.Final] 
    at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromClause(HqlSqlBaseWalker.java:706) ~[hibernate-core-4.1.6.Final.jar:4.1.6.Final] 
    at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:562) ~[hibernate-core-4.1.6.Final.jar:4.1.6.Final] 
    at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:299) ~[hibernate-core-4.1.6.Final.jar:4.1.6.Final] 
    at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:247) ~[hibernate-core-4.1.6.Final.jar:4.1.6.Final] 
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:248) ~[hibernate-core-4.1.6.Final.jar:4.1.6.Final] 
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:183) ~[hibernate-core-4.1.6.Final.jar:4.1.6.Final] 
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:136) ~[hibernate-core-4.1.6.Final.jar:4.1.6.Final] 
    at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:105) ~[hibernate-core-4.1.6.Final.jar:4.1.6.Final] 
    at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:80) ~[hibernate-core-4.1.6.Final.jar:4.1.6.Final] 

여기에 관련 코드는 다음과 같습니다 : 나는 다음과 같은 예외가

GroupServiceDaoImpl: 
    public List<Group> getGroups() { 
     List list = getSessionFactory().getCurrentSession().createQuery("from Group").list(); 
     return (List<Group>) list; 
    } 

스프링 hibernate.xml :

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:tx="http://www.springframework.org/schema/tx" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xmlns:c="http://www.springframework.org/schema/c" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
     http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd 
     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> 

    <!-- Beans Declaration --> 
    <bean id="User" class="com.youthministry.domain.User"/> 
    <bean id="UserProfile" class="com.youthministry.domain.UserProfile"/> 
    <bean id="Event" class="com.youthministry.domain.Event"/> 
    <bean id="Group" class="com.youthministry.domain.Group"/> 
    <bean id="Role" class="com.youthministry.domain.Role"/> 
    <bean id="Location" class="com.youthministry.domain.Location"/> 
    <bean id="Image" class="com.youthministry.domain.Image"/> 
    <bean id="PageContent" class="com.youthministry.domain.PageContent"/> 
    <bean id="TextEntry" class="com.youthministry.domain.TextEntry"/> 

    <!-- User Service Declaration --> 
    <bean id="UserService" class="com.youthministry.service.impl.UserServiceImpl"> 
     <property name="userDao" ref="UserDao" /> 
    </bean> 
    <bean id="GroupService" class="com.youthministry.service.impl.GroupServiceImpl"> 
     <property name="groupDao" ref="GroupDao" /> 
    </bean> 

    <!-- User DAO Declaration --> 
    <bean id="UserDao" class="com.youthministry.dao.impl.UserDaoImpl"> 
     <property name="sessionFactory" ref="SessionFactory" /> 
    </bean> 
    <bean id="GroupDao" class="com.youthministry.dao.impl.GroupDaoImpl"> 
     <property name="sessionFactory" ref="SessionFactory" /> 
    </bean> 
    <bean id="EventDao" class="com.youthministry.dao.impl.EventDaoImpl"> 
     <property name="sessionFactory" ref="SessionFactory" /> 
    </bean> 
    <bean id="PageContentDao" class="com.youthministry.dao.impl.PageContentDaoImpl"> 
     <property name="sessionFactory" ref="SessionFactory" /> 
    </bean> 

    <!-- Data Source Declaration --> 
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> 
     <property name="driverClassName" value="com.mysql.jdbc.Driver"/> 
     <property name="url" value="jdbc:mysql://localhost:3306/YouthMinistry"/> 
     <property name="username" value="root"/> 
     <property name="password" value=""/> 
    </bean> 
    <!-- Session Factory Declaration --> 
    <bean id="SessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> 
     <property name="dataSource" ref="dataSource" /> 
     <property name="annotatedClasses"> 
      <list> 
       <value>com.youthministry.domain.Event</value> 
       <value>com.youthministry.domain.Group</value> 
       <value>com.youthministry.domain.Image</value> 
       <value>com.youthministry.domain.Location</value> 
       <value>com.youthministry.domain.PageContent</value> 
       <value>com.youthministry.domain.Role</value> 
       <value>com.youthministry.domain.TextEntry</value> 
       <value>com.youthministry.domain.User</value> 
       <value>com.youthministry.domain.UserProfile</value> 
      </list> 
     </property> 
     <property name="hibernateProperties"> 
      <props> 
       <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> 
       <prop key="hibernate.show_sql">true</prop> 
       <prop key="hibernate.hbm2ddl.auto">update</prop> 
      </props> 
     </property> 
    </bean> 

    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate" 
     c:_-ref="dataSource" /> 

    <!-- Enable the configuration of transactional behavior based on annotations --> 
    <tx:annotation-driven transaction-manager="txManager"/> 

    <!-- Transaction Manager is defined --> 
    <bean id="txManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"> 
     <property name="sessionFactory" ref="SessionFactory"/> 
    </bean> 

</beans> 

그룹 : 패키지 com.youthministry.domain; http://github.com/dmcquillan314/YouthMinistryHibernate

이 오류에 대한 다른 정보가 필요한 경우 알려 주시면이 게시물을 수정할 수 있습니다 :

import javax.persistence.Entity; 
import javax.persistence.Id; 
import javax.persistence.GeneratedValue; 
import javax.persistence.GenerationType; 

@Entity(name="GROUP_DETAILS") 
public class Group { 
    @Id 
    @GeneratedValue(strategy=GenerationType.AUTO) 
    private Long groupId; 
    private String groupName; 
    private String groupDesc; 

    public Long getGroupId() { 
     return groupId; 
    } 
    public void setGroupId(Long groupId) { 
     this.groupId = groupId; 
    } 
    public String getGroupName() { 
     return groupName; 
    } 
    public void setGroupName(String groupName) { 
     this.groupName = groupName; 
    } 
    public String getGroupDesc() { 
     return groupDesc; 
    } 
    public void setGroupDesc(String groupDesc) { 
     this.groupDesc = groupDesc; 
    } 

} 

그냥 경우에 여기에 자식이 프로젝트의 repo입니다.

모든 아이디어를 매우 높이 평가합니다. 미리 감사드립니다.

+0

cfg 파일은 어디에 있습니까? cfg 파일 doe 같은 그룹 enitity의 항목을 포함하지 않는 것 같습니다 –

답변

3

당신은 그룹 클래스, 클래스의 단순 명되었을 default entity name을 재정의 :

@Entity(name="GROUP_DETAILS") 

따라서 당신이 당신의 쿼리에서 개체 이름으로 그룹을 사용할 수 없습니다. 이를 해결할 수있는 두 가지 옵션이 있습니다 :

HQL에서 "GROUP_DETAILS"를 사용하면 쿼리가 성공해야합니다. 또는 Entity annotation의 name 속성을 생략하고 HQL을있는 그대로 유지할 수 있습니다.

+0

네, 그게 고마워요 고정. – dmcqu314

관련 문제