http://www.w2tt.cn/redirect.php?tid=86&goto=lastpost
在开发项目中,遇到了hibernate
的2个bug。导致出现了一些麻烦。
1、hibernate中native sql对于DB的Text数据类型不支持。
hibernate 使用 hql查询包含text类型字段的时候很好。如果使用native sql 也就是使用 createSQLQuery方法查询text类型的时候总是报错:
org.hibernate.MappingException: No Dialect mapping for JDBC type: -1
at org.hibernate.dialect.TypeNames.get(TypeNames.java
:56)
是hibernate与mysql的jdbc驱动配合上出先了问题:对于 mysql text类型 jdbc
ResultSetMetaData.getColumnType 返回 -1 ,而
hibernate没有注册该类型,所以导致createSQLQuery 报 No Dialect mapping for JDBC type:
-1。
解决这个问题:要么使用hql,不使用sql,要么修改源码:直接修改 MySQL5Dialect 类 registerVarcharTypes 方法,增加一行
registerHibernateType( -1, Hibernate.STRING.getName());
2、HQL中使用inner join fetch之后会导致分页函数失效。
原来是用Query.setFirstResult().setMaxResult()实现分页的。
由于使用了inner join fetch,导致数据一下全部取出。10万多条数据啊,网站一下变得很慢。
最后只好采用sql。
http://opensource.atlassian.com/projects/hibernate/browse/HHH-2877
workaround: map the columns explicit with addScalar.
官方论坛解决方案:
http://opensource.atlassian.com/projects/hibernate/browse/HHH-1483
分享到:
相关推荐
nested exception is org.hibernate.MappingException: Repeated column in mapping for entity: com.xindeco.myregister.pojo.MyRegisterInfo column: password (should be mapped with insert="false" update=...
NULL 博文链接:https://guoyinjian.iteye.com/blog/1259538
错误表现:尝试操作某个实体类时,出现“org.hibernate.MappingException: Unknown entity”错误,这意味着Hibernate并未识别到该实体类。 解决方案:确保实体类已添加@Entity注解,并且该类所在的包已被配置在...
本文将介绍 Hibernate 中的一些常见异常,包括 net.sf.hibernate.MappingException、net.sf.hibernate.PropertyNotFoundException、org.hibernate.id.IdentifierGenerationException 以及 a different object with ...
- `com.sap.aii.mapping.api.jar`:这个jar包包含SAP PI Java Mapping的API接口,它提供了一系列的类和接口,如`StreamHandler`,用于处理输入和输出流,以及`MappingException`用于处理异常情况。开发人员通过实现...
Hudson持续集成工具可以集成Maven工具,并支持其项目的自动化构件,我们可以通过对其配置达到以Maven的形式将构件项目自动化管理起来的目的。
4. `org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save():` 此异常意味着在尝试保存对象前,对象的主键没有被正确设置。通常,这是由于在映射...
标题与描述概述的知识点主要集中在Hibernate映射过程中可能遇到的各种异常情况,这涉及到数据库与对象模型之间的映射问题,以及Hibernate框架在处理这些映射时可能产生的错误。下面将对这些异常进行详细的解释和分析...
dozer是一款优秀的java bean映射开源框架,完成深度转换Bean<->Bean的Mapper实现
org.hibernate.MappingException: Unable to find column with logical name 这表示Hibernate在构建映射时未能找到与实体属性相对应的数据库列。确保实体类中的属性名称与数据库表中的列名相匹配,或者使用`@...
jdbcPros.setProperty("hibernate.connection.driver_class", "org.gjt.mm.mysql.Driver"); jdbcPros.setProperty("hibernate.connection.url", "jdbc:mysql://localhost:3306/your_db"); jdbcPros.setProperty(...
"orika-sample:使用“ma.glasnost.orika”的样本"是一个关于Java对象映射库Orika的实践项目。Orika是一个高性能、易用的对象映射框架,它简化了Java对象到Java对象之间的数据转换过程。这个项目提供了一系列示例,...
( org.hibernate.MappingException: Repeated column in mapping for entity:YOUR_ENTITY ),因为表databsae不能具有重复的列名。 JPA定义了@AttributeOverride批注来处理此senario。 @AttributeOverrides({ @...
**MappingException: Error reading resource: hibernate/Hello_Bean.hbm.xml** **异常描述:** 此异常表示Hibernate在加载指定的映射文件时遇到了问题。 **解决方法:** - 检查映射文件路径是否正确。例如,确保...
首先,让我们解决异常`org.hibernate.MappingException: Unknown entity: com.aptech.jb.entity.TblUser`。这个异常通常是因为Hibernate没有找到指定的实体映射文件。解决方法是在`Hibernate.cfg.xml`配置文件中添加...
import org.exolab.castor.mapping.MappingException; import org.exolab.castor.xml.MarshalException; import org.exolab.castor.xml.Marshaller; import org.exolab.castor.xml.Unmarshaller; import org.exolab....
在使用Hibernate时,可能会遇到`org.hibernate.MappingException: Unknown entity`这样的异常,这通常是因为在配置文件(如Hibernate.cfg.xml)中未指定实体的映射文件。例如,如果实体类为`...
- **异常示例**:`org.hibernate.MappingException: Could not configure overrides from file`。 - **解决方法**:这通常是由于生成的`hibernate.reveng.xml`文件格式不正确导致的。解决方法是修改该文件的头部...
首先,出现 `org.hibernate.MappingException: Unknown entity` 异常通常是因为 Hibernate 没有找到指定的实体映射文件。在本例中,错误提示说没有在 Hibernate.cfg.xml 文件中添加 `<mapping>` 元素来指明 `...