2013-08-05 3 views
0

я получаю следующее сообщение об ошибке, когда я пытаюсь манипулировать человеком «лица» внутри пружинного контейнера:Комбинирование XML и Java конфигурации весной 3.2 + зимуют 4

Exception in thread "main" org.hibernate.MappingException: Unknown entity: org.s 
pring.entity.Person 
     at org.hibernate.internal.SessionFactoryImpl.getEntityPersister(SessionF 
actoryImpl.java:1141) 
     at org.hibernate.internal.SessionImpl.getEntityPersister(SessionImpl.jav 
a:1433) 

Где я буду неправильно - возможно, пытаясь объединить xml и аннотированные метаданные?
Оцените любую помощь по этому вопросу.

Entity:

@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; 
..... 
..... 
} 

Service боб:

@Service("personService") 
@Transactional 
public class PersonService { 


    @Resource(name="sessionFactory") 
    private SessionFactory sessionFactory; 

    public List<Person> getAll() { 

     // Retrieve session from Hibernate 
     Session session = sessionFactory.openSession(); 
     try{ 
     // Create a Hibernate query (HQL) 
     Query query = session.createQuery("FROM Person"); 

     // Retrieve all 
     return query.list(); 
     } 
     finally{ 
     session.close(); 
     } 
    } 
.... 
.... 
} 

Main: конфигурация

public static void main(String[] args){ 

     ApplicationContext appContext = 
       new ClassPathXmlApplicationContext("META-INF/beans-txn.xml"); 


     PersonService personService = (PersonService)appContext.getBean("personService"); 
     personService.add("Rob","Cahill", new Double(20000)); 
     List<Person> persons = personService.getAll(); 
    ..... 

весна:

<context:annotation-config /> 

    <bean id="personService" class="org.spring.service.PersonService"/> 

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

     <!-- Hibernate session factory --> 
    <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> 
     <property name="dataSource"> 
      <ref bean="dataSource"/> 
     </property> 
     <property name="hibernateProperties"> 
     ..... 
     </property> 

    </bean> 

ответ

0

добавить на SessionFactory определение фасоли:

<property name="packagesToScan" value="common.**.entities" /> 

Где common.**.entities - пакет с сущностями.

+0

Не удается выполнить следующую строку: Запрос запроса = session.createQuery ( "от лица, где ID =?"); query.setInteger (0, id); Person person = (Person) query.list(). Get (0); Исключение составляет: Исключение в теме "main" org.hibernate.hql.internal.ast.QuerySyntaxException: человек не отображается [от лица, где ID =?] at org.hibernate.hql.internal.ast.util .SessionFactoryHelper.requireClass стойкая бактерия (SessionFactoryHelper.java:180) на org.hibernate.hql.internal.ast.tree.FromElementFactory.addFromElement (FromElementFactory.java:110) – IUnknown

+0

@IUnknown: пожалуйста, обновите вы конфигурационным с 'packagetoScan' поле –

Смежные вопросы