使用JPA的时候,都有对象和数据库表映射的步骤,我在开发过程中遇到一个问题就是MYSQL中,一个text字段无法和对象中的String类型对应,所以无法正常工作,在网上找了些解决方法,都提到了hibernate.dialect这个东西,但是不知道为什么,我采用这些解决办法时都不成功,我用的组合是struts2.1.6 + spring2 + JPA。
没办法,根据栈的提示信息,把相关类的源代码看了看,终于找到了适合我的结构的解决办法。
就是这一项
ExtendedDialect的实现方法如下。
没办法,根据栈的提示信息,把相关类的源代码看了看,终于找到了适合我的结构的解决办法。
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="jpaVendorAdapter">
<bean
class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="database" value="MYSQL" />
<property name="showSql" value="true" />
<property name="databasePlatform" value="ExtendedDialect" />
</bean>
</property>
</bean>
就是这一项
<property name="databasePlatform" value="ExtendedDialect" />
ExtendedDialect的实现方法如下。
public ExtendedDialect()
{
super();
//registerHibernateType(Types.DECIMAL, Hibernate.BIG_DECIMAL.getName());
registerHibernateType(-1, Hibernate.STRING.getName());
//registerHibernateType(, Hibernate.INTEGER.getName());
}