在开发项目中,遇到了hibernate
的2个bug。导致出现了一些麻烦。
1、hibernate中对于数据库的Text数据类型不支持。
hibernate 使用hql查询包含text类型字段的时候很好。如果使用native sql也就是使用 createSQLQuery方法查询text类型的时候总是报错:
org.hibernate.MappingException: No Dialect mapping for JDBC type:-1
atorg.hibernate.dialect.TypeNames.get(TypeNames.java
:56)
是hibernate与mysql的jdbc驱动配合上出现了问题:对于 mysql text类型jdbc ResultSetMetaData.getColumnType 返回-1 ,而hibernate没有注册该类型,所以导致createSQLQuery 报 No Dialect mapping for JDBCtype: -1。
解决这个问题:要么使用hql,不使用sql,
要么继承 MySQL5Dialect 类重写方法
import java.sql.Types;
importorg.hibernate.Hibernate;
import org.hibernate.dialect.MySQLInnoDBDialect;
public class MySqlDialectOverride extends MySQLInnoDBDialect{
public MySqlDialectOverride(){
super();
registerHibernateType(Types.DECIMAL,Hibernate.BIG_DECIMAL.getName());
registerHibernateType(-1,Hibernate.STRING.getName());
}
}
分享到:
相关推荐
在处理特定类型的数据库字段时,比如`TEXT`字段,Hibernate可能需要使用特定的方言(Dialect)来确保正确地进行操作。本文将深入探讨如何使Hibernate支持MySQL中的`TEXT`字段,以及`MYSQLDialect.java`在这个过程中...
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect <!-- 映射文件位置 --> <mapping resource="cn/itcast/elec/domain/ElecText.hbm.xml"/> ``` ### 四、业务逻辑层与表现层的设计 ...
<property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect <mapping resource="com/example/User.hbm.xml"/> ``` ##### 3.4 创建Spring配置文件applicationContext.xml 在项目的`src/main/...
<property name="dialect">org.hibernate.dialect.MySQLDialect <property name="myeclipse.connection.profile">LoginSystem <property name="connection.password">root ...
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url">...
<prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect <prop key="hibernate.show_sql">true <prop key="hibernate.hbm2ddl.auto">update ...
5. 在java 对象和 数据库之间有做mapping 的配置文件,也通常是xml 文件。 mybatis实战教程(mybatis in action)之一:开发环境搭建 mybatis 的开发环境搭建,选择: eclipse j2ee 版本,mysql 5.1 ,jdk 1.7,mybatis...
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect <prop key="hibernate.show_sql">true <!-- 更多配置 --> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> ...
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect <prop key="hibernate.show_sql">true <prop key="hibernate.hbm2ddl.auto">update <value>table1.hbm.xml <!-- 事务管理器...
<property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect <property name="hibernate.hbm2ddl.auto">update <property name="hibernate.show_sql">true <mapping resource=...
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect <prop key="hibernate.show_sql">true <property name="driverClass" value="com.mysql.jdbc.Driver"/> ...
05.dataSource.dialect=org.hibernate.dialect.MySQL5Dialect 06.dataSource.serverName=localhost:3306 07.dataSource.url=jdbc:mysql://localhost:3306/test 08.dataSource.properties=user=${dataSource....
dialect: 'mysql' }); ``` 接下来,定义模型是ORM的核心部分。模型代表数据库中的表,可以通过Sequelize的`define`方法创建: ```javascript const User = sequelize.define('User', { // 属性定义 firstName: ...
本网站以xp为Web平台,JSP+Ajax+Servlet+JavaBean+Hibernate为网站实现技术,建立基于MySQL数据库系统的核心动态网页,实现博客网站前台及博客个人维护管理等功能模块。 1、 系统处理的准确性和及时性:系统处理的...
21. <prop key="hibernate.dialect">org.hibernate.dialect.OracleDialect 22. <prop key="hibernate.cglib.use_reflection_optimizer">true 23. 24. 25. 26. !-- Hibernate 模板//--> 27. 28. class="org....