- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我在 MySQL 5.1 上运行 Hibernate 3.2.0。更新 MySQL 中的 group_concat_max_len 后(因为 group_concat 查询超出了默认值),在执行带有 group_concat 子句的 SQLQuery 时出现以下异常:
“没有 JDBC 类型的方言映射:-1”
-1 是 LONGVARCHAR 的 java.sql.Types 值。显然,增加 group_concat_max_len 值会导致对 group_concat 的调用返回 LONGVARCHAR 值。这似乎是此错误的一个实例:
http://opensource.atlassian.com/projects/hibernate/browse/HHH-3892
我想 Hibernate 3.5 中已经修复了这个问题,但那仍然是一个开发版本,所以我对将其投入生产犹豫不决,也不知道它是否会导致我代码的其他部分出现问题根据。我也可以只使用 JDBC 查询,但我必须用 group_concat 子句替换 SQLQuery 的每个实例。
还有什么建议吗?
最佳答案
是的,两个建议。要么:
用 HHH-3892 的变化给 Hibernate 3.2.0 打补丁即获取 Hibernate 源代码,应用 r16501 的补丁, r16823和 r17332 ) 并自己构建 Hibernate。
或者按照 HHH-1483 中的建议使用自定义方言:
public class MySQL5Dialect extends org.hibernate.dialect.MySQL5Dialect {
public MySQL5Dialect() {
super();
// register additional hibernate types for default use in scalar sqlquery type auto detection
// http://opensource.atlassian.com/projects/hibernate/browse/HHH-1483
registerHibernateType(Types.LONGVARCHAR, Hibernate.TEXT.getName());
}
}
选项 #2 易于实现和测试(我没有),而选项 #1 “更干净”但需要(稍微)更多的工作。就我个人而言,我会选择选项 #1,因为这是您将获得的 3.5 版本,因此可以保证无缝升级。
关于java - Hibernate 3.2 中没有 LONGVARCHAR 的映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2326935/
这是属性, @Column( name = "description") private String description; 这是 MySql 表 在编译过程中抛出这个错误, Caused by:
我在 ODP.NET Oracle.DataAccess.Client OracleDbType 中搜索 System.Data.OracleClient OracleType.LongVarChar
我在 MySQL 5.1 上运行 Hibernate 3.2.0。更新 MySQL 中的 group_concat_max_len 后(因为 group_concat 查询超出了默认值),在执行带有
使用 DataType.LONG_STRING 属性值保留为处理较长字符串的 SQL 类型 LONGVARCHAR。 但是,我想将该字段映射到 SQL 类型 TEXT 。 @DatabaseField
我是一名优秀的程序员,十分优秀!