UserType / Hibernate / JodaMoney错误:PersistentMoneyAmount要求将currencyCode定义为参数
我正在使用UserType 3.0.0.RC1将JodaMoney映射到Hibernate。
当SessionFactory初始化时,我陷入了一个错误:
PersistentMoneyAmount要求将currencyCode定义为参数,或者将defaultCurrencyCode
Hibernate属性定义为
我确定我必须遇到一些配置问题-这是相关的代码段。
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>
相关的spring配置:
<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>
关于我所缺少的任何提示吗?
-
我最终使用以下配置解决了这个问题
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.seed
以便jadira.usertype.currencyCode
检测到。