gpt4 book ai didi

mysql - Hibernate SQL QUERY,mysql 中的 TEXT 数据类型问题

转载 作者:行者123 更新时间:2023-11-29 03:11:42 25 4
gpt4 key购买 nike

我需要使用 hibernate 执行 sql 查询(无映射),但每当 MYSQL 中的字段具有 TEXT 数据类型时,我都会收到此错误:

org.hibernate.MappingException: No Dialect mapping for JDBC type: -1

我不知道该怎么做,映射不是一个选项(数据库中的动态表,所以字段的数量是可变的)。

这是一段代码:

SQLQuery query = session.createSQLQuery(sql);

Object[] values = (Object[]) query.uniqueResult();

sql 是一个包含查询的字符串(它可以与 mysql 查询引擎一起运行)。如果我将 TEXT 数据类型更改为 varchar,工作正常,但这也不是一个选项!

有什么线索吗?

最佳答案

这里有一个可能的解决方案:

package iam.dirty;
import java.sql.Types;

import org.hibernate.Hibernate;
import org.hibernate.dialect.SQLServerDialect;

public class DialectForGkoloc extends SQLServerDialect {
public DialectForGkoloc() {
super();

registerHibernateType(Types.DECIMAL, Hibernate.BIG_DECIMAL.getName());
registerHibernateType(-1, Hibernate.STRING.getName());
registerHibernateType(Types.LONGVARCHAR, Hibernate.TEXT.getName());
}

}

修改Hibernate配置文件hibernate.cfg.xml:

<property name="dialect"> 
org.hibernate.dialect.SQLServerDialect
</property>

与:

<property name="dialect"> 
iam.dirty.DialectForGkoloc
</property>

关于mysql - Hibernate SQL QUERY,mysql 中的 TEXT 数据类型问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7192190/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com