2011-11-24 3 views
0

최대 절전 모드 지원과 쌍을 이루는 Joda 시간이 사용됩니다.최대 절전 모드 시작시 Joda 유형 def 로딩이 실패 함

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 
     <property name="packagesToScan"> 
      <list> 
       <value>org.joda.time</value> 
      </list> 
     </property> 
     <property name="annotatedClasses"> 
      <list> 
       <value>...</value> 
... 
      </list> 
     </property> 
     <property name="hibernateProperties"> 
      <props> 
       <prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop> 
       <prop key="hibernate.query.substitutions">true 1, false 0, yes 'Y', no 'N'</prop> 
       <prop key="hibernate.show_sql">false</prop> 
       <prop key="hibernate.format_sql">true</prop> 
      </props> 
     </property> 
     <property name="dataSource" ref="dataSource"/> 
    </bean> 
:

@org.hibernate.annotations.TypeDefs({ 
@org.hibernate.annotations.TypeDef(
         name="localDate", 
         typeClass = 
org.joda.time.contrib.hibernate.PersistentLocalDate.class 
     ) 
}) 
package org.joda.time; 

세션 공장 설정으로 스프링 컨텍스트가있다 : org.joda.time.package-info.java에서 형식 정의를

있어 다음과 같이 구성입니다

테스트 케이스가 있습니다.

@RunWith(SpringJUnit4ClassRunner.class) 
@ContextConfiguration({"classpath:spring-test.xml"}) 
@Transactional 
public class OperatorDaoTest extends AbstractTransactionalJUnit4SpringContextTests { 
//autowired dao field defined 
... 
@Test 
public void testMethod(){ 
//calls DAO method 
} 
} 

문제는 다음 예외입니다 :

Caused by: org.hibernate.MappingException: Could not determine type for: localDate, at table: TABLE_NAME, for columns: [org.hibernate.mapping.Column(DATE_COLUMN)] 

답변

1

나는 데이터베이스에 매핑하는 표준 날짜를 사용하고, 가지고있는 것처럼 나는이 joda 시간을 사용하여 변환을 수행 내 게터/세터에, 문제를 방지 할 수 있습니다. This may be of use.

+0

대답은 고맙지 만 조언을 따르는 데 너무 많은 노력이 필요하므로 세션 팩토리에 유형 정의 속성을 추가하는 것과 같은 다른 해결 방법을 사용하는 것이 더 쉽습니다. –

+0

약한 해결 방법은 제 의견으로는 실제로 문제를 해결하지 못합니다. – rtcarlson

+0

@rtcarlson이 의견/투표에 감사 드리며, 아마도 약한 대답을 제안 할 수 있습니까? – NimChimpsky

관련 문제