hibernate默认不支持text类型的,所以要修改方言源代码
<span style="font-family:KaiTi_GB2312;font-size:18px;"><bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
my.util.MyDialect
<!-- org.hibernate.dialect.MySQLDialect-->
</prop>
<prop key="hibernate.show_sql">${jdbc.show_sql}</prop>
<prop key="hibernate.format_sql">true</prop>
<!-- 批处理 -->
<prop key="hibernate.jdbc.batch_size">5</prop>
<!-- 开启缓存 -->
<prop key="hibernate.cache.provider_class">
org.hibernate.cache.EhCacheProvider
</prop>
<prop key="cache.use_second_level_cache">true</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>my/models/business/common/OvertimeDetail.hbm.xml</value>
<value>my/models/business/common/WorkOvertime.hbm.xml</value>
</list>
</property>
</bean></span>
<span style="font-family:KaiTi_GB2312;font-size:18px;">package my.util;
import java.sql.Types;
import org.hibernate.Hibernate;
import org.hibernate.dialect.MySQL5Dialect;
import org.hibernate.dialect.function.SQLFunctionTemplate;
public class MyDialect extends MySQL5Dialect {
public MyDialect(){
super();
registerHibernateType(Types.LONGVARCHAR, Hibernate.TEXT.getName());
registerFunction("convert", new SQLFunctionTemplate(Hibernate.STRING, "convert(?1 using gbk)"));
}
@Override
public String getTableTypeString() {
return "engine=MyISAM";
}
}
</span>