2016-06-23 4 views
1

내가 작업 주석을 기반으로 최대 절전 모드 설정을 얻기 위해 노력하고있어.봄 + 최대 절전 모드 : 알 수없는 엔티티

applicationContext.xml

<!-- ============================= --> 
<!-- DATASOURCE     --> 
<!-- ============================= --> 
<bean name="logDataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> 
    <property name="jndiName" value="${logs.ds.jndi.name}"/> 
</bean> 

<!-- ============================= --> 
<!-- SESSION FACTORY    --> 
<!-- ============================= --> 
<bean id="logSessionFactory" 
     class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"> 
    <property name="packagesToScan" value="com.example.logs.persistence.entity"/> 
    <property name="dataSource" ref="logDataSource"/> 
    <property name="hibernateProperties"> 
     <props> 
      <!-- dialect --> 
      <prop key="hibernate.dialect">${logs.ds.dialect}</prop> 
      <prop key="hibernate.connection.useUnicode">true</prop> 
      <prop key="hibernate.connection.charSet">UTF-8</prop> 

      <!-- schema --> 
      <prop key="hibernate.default_schema">${logs.ds.default_schema}</prop> 

      <!-- logging debug information --> 
      <prop key="hibernate.show_sql">${logs.ds.debug}</prop> 
      <prop key="hibernate.format_sql">${logs.ds.debug}</prop> 
      <prop key="hibernate.generate_statistics">${logs.ds.debug}</prop> 
      <prop key="hibernate.use_sql_comments">${logs.ds.debug}</prop> 

      <prop key="configurationClass">org.hibernate.cfg.AnnotationConfiguration</prop> 
     </props> 
    </property> 
</bean> 

<bean id="logTransactionManager" 
     class="org.springframework.orm.hibernate5.HibernateTransactionManager"> 
    <property name="sessionFactory" ref="logSessionFactory"/> 
</bean> 

LogsConfiguration.java

package com.example.logs.persistence.entity; 

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

@Entity 
@Table(name = "logs_configuration") 
public class LogsConfiguration { 
    // ... 
} 

내가, 내가이 오류 얻을 내 DAO와 LogsConfiguration을 저장하려고하면 문제는 다음과 같습니다

Caused by: org.hibernate.MappingException: Unknown entity: com.example.logs.persistence.entity.LogsConfiguration 
at org.hibernate.internal.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:776) 
at org.hibernate.internal.SessionImpl.getEntityPersister(SessionImpl.java:1533) 
at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:104) 
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:192) 
at org.hibernate.event.internal.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:38) 
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:177) 
at org.hibernate.event.internal.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:32) 
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:73) 
at org.hibernate.internal.SessionImpl.fireSave(SessionImpl.java:682) 
at org.hibernate.internal.SessionImpl.save(SessionImpl.java:674) 
at org.hibernate.internal.SessionImpl.save(SessionImpl.java:669) 
at com.example.logs.persistence.dao.impl.AbstractDaoImpl.create(AbstractDaoImpl.java:125) 

어디서 잘못 됐습니까? 나는 해결책을 발견

<bean id="logSessionFactory" 
     class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 
    <property name="packagesToScan" value="com.example.logs.persistence.entity"/> 
    <property name="dataSource" ref="logDataSource"/> 
    <property name="hibernateProperties"> 
     ... 
    </property> 
</bean> 
+0

@Autowired protected SessionFactory sessionFactory; 

당신이 최대 절전 모드 5 사용하십니까 것으로 교체? –

+0

@ v.ladynev 예 최대 절전 모드 5.1.0. 최종 사용 중입니다. – Kawada

답변

0

대신 org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean

귀하의 항목이 아래와 같이 변경 될 것입니다 org.springframework.orm.hibernate5.LocalSessionFactoryBean 사용의 (나는 javax.persistence 주석을 사용하고 있습니다) 나에게 좋아 보인다. 내 응용 프로그램이 필터이고 문제는 두 개의 세션 팩토리가 있다는 것입니다.

내 DAO는 잘못된를 autowiring에 있었다. 이를 해결하기 위해 나는 @Qualifier을 추가하여 좋은 것을 얻었습니다.

그래서 나는 그

@Autowired 
@Qualifier("logSessionFactory") 
protected SessionFactory sessionFactory; 
관련 문제