2012-04-19 8 views
1

私はUserType 3.0.0.RC1を使用してJodaMoneyをHibernateにマップしています。UserType/Hibernate/JodaMoneyエラー:PersistentMoneyAmountはcurrencyCodeをパラメータとして定義する必要があります

ときのSessionFactoryを初期化私はエラーでこだわっている:PersistentMoneyAmountは、私は

を定義する パラメータ、またはdefaultCurrencyCode Hibernateのプロパティとして定義するCURRENCYCODEを必要

設定に問題があることを確認してください。ここに関連するスニペットがあります。

のpersistence.xml:

<persistence-unit name="spring-jpa"> 
    <properties> 
     <property name="hibernate.format_sql" value="true"/> 
     <property name="hibernate.hbm2ddl.auto" value="update"/> 
     <property name="jadira.usertype.autoRegisterUserTypes" value="true"/> 
    </properties> 
</persistence-unit> 

関連の春の設定:

<bean id="entityManagerFactory" 
    class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> 
    <property name="dataSource" ref="dataSource" /> 
    <property name="packagesToScan"> 
     <list> 
      <value>com.mangofactory.concorde</value> 
      <value>com.mangofactory.moolah</value> 
     </list> 
    </property> 
    <property name="persistenceUnitName" value="spring-jpa" /> 
    <property name="jpaVendorAdapter"> 
     <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"> 
      <property name="showSql" value="true" /> 
      <property name="databasePlatform" value="org.hibernate.dialect.MySQLDialect" /> 
     </bean> 
    </property> 
</bean> 

私が欠けているものを上の任意のヒント?

答えて

2

私は私のpersistence.xmlで次の構成を使用して、これを解決することになった:

<persistence-unit name="spring-jpa"> 
    <properties> 
     <property name="hibernate.format_sql" value="true"/> 
     <property name="hibernate.hbm2ddl.auto" value="update"/> 
     <property name="jadira.usertype.autoRegisterUserTypes" value="true"/> 
     <property name="jadira.usertype.currencyCode" value="AUD"/> 
     <property name="jadira.usertype.seed" value="org.jadira.usertype.spi.shared.JvmTimestampSeed"/> 
    </properties> 
</persistence-unit> 

トリッキーな部分は、私が検出されるべきjadira.usertype.currencyCodeためにjadira.usertype.seedを提供するために必要なことです。

0

シードを設定する必要性について - これは3.0.0-RC1のバグが原因で、今後修正される予定です。

1

アノテーションベースのソリューションを探しているなら、あなたはこの

@Type(type = "org.jadira.usertype.moneyandcurrency.joda.PersistentMoneyAmount", parameters = { @Parameter(name="currencyCode", value="USD") }) 
private Money price; 

がここ

Email Archive: usertype-discuss (read-only)

を見つけてみてください
関連する問題