2013-08-06 2 views
0

하이버 네이트 XML 매핑 대신 주석을 통해 '엔티티'를 처리하려고합니다.
추가가 성공했지만 검색에 실패한 상황에 직면 해 있습니다. 도움을 주시면 감사하겠습니다.
모델 클래스 :엔티티 검색 오류

@Entity 
@Table(name = "PERSON") 
public class Person implements Serializable { 
    private static final long serialVersionUID = -5527566248002296042L; 
    @Id 
    @Column(name = "ID") 
    @GeneratedValue 
    private Integer id; 
    @Column(name = "FIRST_NAME") 
    private String firstName; 
    @Column(name = "LAST_NAME") 
    private String lastName; 
    @Column(name = "MONEY") 
    private Double money; 
.....setters and getters 
} 

봄 구성 :

<context:annotation-config /> 
    <context:component-scan base-package="org.spring.entity,org.spring.service" /> 

    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
.... 
    </bean> 

     <!-- Hibernate session factory --> 
    <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> 
... 
     <property name="packagesToScan"> 
     <list> 
     <value>org.spring.entity</value> 
     <value>org.spring.service</value> 
     </list> 
     </property> 
     <property name="hibernateProperties"> 
... 
     </property> 
    </bean> 

서비스 클래스 : 오류는 다음과 같습니다

public void add(String firstName, String lastName, Double money) { 
     // Retrieve session from Hibernate 
     Session session = sessionFactory.openSession(); 
     try{ 
     // Create a new person 
     Person person = new Person(); 
     person.setFirstName(firstName); 
     person.setLastName(lastName); 
     person.setMoney(money); 

     // Save 
     session.save(person); 
     } 
     finally{ 
     session.close(); 
     } 
    } 
public void edit(Integer id, String firstName, String lastName, Double money) { 
     // Retrieve session from Hibernate 
     Session session = sessionFactory.openSession(); 
     try{ 
     // Retrieve existing person via id 
     Query query = session.createQuery("FROM Person WHERE ID=?");<=FAILS HERE 
     query.setInteger(0, id); 
     Person person = (Person)query.list().get(0); 
...... 
} 

:

Exception in thread "main" org.hibernate.hql.internal.ast.QuerySyntaxException: 
person is not mapped [from person where ID=?] 
     at org.hibernate.hql.internal.ast.util.SessionFactoryHelper.requireClass 
Persister(SessionFactoryHelper.java:180) 
     at org.hibernate.hql.internal.ast.tree.FromElementFactory.addFromElement 
(FromElementFactory.java:110) 
     at org.hibernate.hql.internal.ast.tree.FromClause.addFromElement(FromCla 
use.java:93) 
     at org.hibernate.hql.internal.ast.HqlSqlWalker.createFromElement(HqlSqlW 
alker.java:324) 

답변

0

귀하의 HQL 잘못이다, 다음과 같이하십시오.

(복수의 결과의 경우, 일부 구문 바로 확인하시기 바랍니다 자신의 남아있을 수 있습니다.)

Query query = session.createQuery("FROM Person WHERE ID=:ID") 
List list=query.setParameter("ID",ID).list(); 

또는

Person person =new Person(); 
person =(Person) session.get(Person .class, ID); 
(단일 결과의 경우)