SQLite+Hibernate No Dialect mapping for JDBC type: 0

Synopsys PCIe IP 实战笔记:手把手教你配置本地数字回环(PIPE/RMMI) 本文详细介绍了Synopsys PCIe IP本地数字回环(PIPE/RMMI)的配置与调试全流程,涵盖硬件连接、寄存器操作及实战技巧。通过数字回环模式,开发者可在无真实对端设备的情况下验证PCIe接口功能,适用于芯片验证和FPGA原型开发。文章还提供了常见问题排查和性能优化建议,助力高效完成协议解析与调试。 阅读详情

前几天做一个小系统,数据库选了SQLite,从网上下载了一个SQLite与Hibernate整合的方言类配进系统

import java.sql.Types;

import org.hibernate.Hibernate;
import org.hibernate.dialect.Dialect;
import org.hibernate.dialect.function.SQLFunctionTemplate;
import org.hibernate.dialect.function.StandardSQLFunction;
import org.hibernate.dialect.function.VarArgsSQLFunction;

public class SQLiteDialect extends Dialect {
 public SQLiteDialect() {
  super();
  registerColumnType(Types.BIT, "integer");
  registerColumnType(Types.TINYINT, "tinyint");
  registerColumnType(Types.SMALLINT, "smallint");
  registerColumnType(Types.INTEGER, "integer");
  registerColumnType(Types.BIGINT, "bigint");
  registerColumnType(Types.FLOAT, "float");
  registerColumnType(Types.REAL, "real");
  registerColumnType(Types.DOUBLE, "double");
  registerColumnType(Types.NUMERIC, "numeric");
  registerColumnType(Types.DECIMAL, "decimal");
  registerColumnType(Types.CHAR, "char");
  registerColumnType(Types.VARCHAR, "varchar");
  registerColumnType(Types.LONGVARCHAR, "longvarchar");
  registerColumnType(Types.DATE, "date");
  registerColumnType(Types.TIME, "time");
  registerColumnType(Types.TIMESTAMP, "timestamp");
  registerColumnType(Types.BINARY, "blob");
  registerColumnType(Types.VARBINARY, "blob");
  registerColumnType(Types.LONGVARBINARY, "blob");
  registerColumnType(Types.BLOB, "blob");
  registerColumnType(Types.CLOB, "clob");
  registerColumnType(Types.BOOLEAN, "integer");
  

  registerFunction("concat", new VarArgsSQLFunction(Hibernate.STRING, "",
    "||", ""));
  registerFunction("mod", new SQLFunctionTemplate(Hibernate.INTEGER,
    "?1 % ?2"));
  registerFunction("substr", new StandardSQLFunction("substr",
    Hibernate.STRING));
  registerFunction("substring", new StandardSQLFunction("substr",
    Hibernate.STRING));
  
 }

 public boolean supportsIdentityColumns() {
  return true;
 }

 public boolean hasDataTypeInIdentityColumn() {
  return false;
 }

 public String getIdentityColumnString() {
  return "integer";
 }

 public String getIdentitySelectString() {
  return "select last_insert_rowid()";
 }

 public boolean supportsLimit() {
  return true;
 }

 protected String getLimitString(String query, boolean hasOffset) {
  return new StringBuffer(query.length() + 20).append(query).append(
    hasOffset ? " limit ? offset ?" : " limit ?").toString();
 }

 public boolean supportsTemporaryTables() {
  return true;
 }

 public String getCreateTemporaryTableString() {
  return "create temporary table if not exists";
 }

 public boolean dropTemporaryTableAfterUse() {
  return false;
 }

 public boolean supportsCurrentTimestampSelection() {
  return true;
 }

 public boolean isCurrentTimestampSelectStringCallable() {
  return false;
 }

 public String getCurrentTimestampSelectString() {
  return "select current_timestamp";
 }

 public boolean supportsUnionAll() {
  return true;
 }

 public boolean hasAlterTable() {
  return false;
 }

 public boolean dropConstraints() {
  return false;
 }

 public String getAddColumnString() {
  return "add column";
 }

 public String getForUpdateString() {
  return "";
 }

 public boolean supportsOuterJoinForUpdate() {
  return false;
 }

 public String getDropForeignKeyString() {
  throw new UnsupportedOperationException(
    "No drop foreign key syntax supported by SQLiteDialect");
 }

 public String getAddForeignKeyConstraintString(String constraintName,
   String[] foreignKey, String referencedTable, String[] primaryKey,
   boolean referencesPrimaryKey) {
  throw new UnsupportedOperationException(
    "No add foreign key syntax supported by SQLiteDialect");
 }

 public String getAddPrimaryKeyConstraintString(String constraintName) {
  throw new UnsupportedOperationException(
    "No add primary key syntax supported by SQLiteDialect");
 }

 public boolean supportsIfExistsBeforeTableName() {
  return true;
 }

 public boolean supportsCascadeDelete() {
  return false;
 }
}

但是在使用中抛了一个异常

org.hibernate.MappingException: No Dialect mapping for JDBC type: 0
到java.sql.Types类里看了一下这个0的类型是指null

public final static int NULL  =   0;

解决方法:

在这个类的构造方法里加一句 

registerHibernateType(Types.NULL, "null");

 

【目标检测】基于yolov5的铝型材表面缺陷检测(附代码和数据集,Ubuntu或者Linux系统均可运行) 阅读详情

相关推荐

Ubuntu 24.04 搭建 Squid 代理服务器终极指南:从入门到 HTTPS 缓存AI模型

本文详细指导在Ubuntu 24.04系统部署Squid代理服务器,实现AI大模型文件的高效缓存。重点内容包括:1) 安装squid及必备的squid-openssl扩展包;2) 配置HTTPS拦截(SSL-Bumping)功能,创建CA证书和SSL数据库;3) 优化缓存策略,设置4TB存储空间并强制缓存常见大文件格式;4) 结合华为防火墙实现透明代理。文章特别强调实际部署中的关键注意事项和常见错误解决方案,如证书路径配置、权限设置等问题,帮助用户快速搭建企业级缓存代理服务。

zlt315的博客 1921

No Dialect mapping for JDBC type :0

data service 架构:spring Roo + hibernate+mysql 在调用stored procedure的时候,出现:No Dialect mapping for JDBC type:0 通过反编译java.sql.Types.java得知type:0 对应于NULL     原因是java中的java.sql.Types中定义了NULL的解析,但是hiber...

hebeind100的博客 6983

影刀RPA之成绩批量查询系统

自动化登录账号,读取数据表中内容去填写信息去查询,并判断多个数据不同的页面去不同的读取查询结果内容,如考生各项信息与各科成绩,总分和查询时间,采集出来到指定的数据表格中,等待时间并依次循环运行。主要功能。

2201_75330891的博客 1085

学习记录701@org.hibernate.MappingException: No Dialect mapping for JDBC

使用spring data jpa 时报错:javax.persistence.PersistenceException: org.hibernate.MappingException: No Dialect mapping for JDBC type: 0。就是这个Null,导致是spring data jpa无法解析,在数据库中sql是可以执行的,奇怪的是,我其他字段查出来也有Null的,但是报错。当执行query.getResultList();但是在数据库中sql是可以执行的。

教练我想学编程 770

别再乱拖了!Godot 4.x 场景编辑器的7个隐藏操作技巧(附快捷键清单)

本文揭示了Godot 4.x场景编辑器的7个隐藏操作技巧,包括智能对齐、轴心点应用、多节点批量操作等,帮助开发者提升游戏开发效率。特别介绍了坐标系切换和自定义快捷键等实用功能,适用于处理复杂场景和团队协作。

weixin_29534421的博客 362

从‘查理复用’到TM52F1363:深入剖析5脚188数码管的驱动原理与避坑指南

本文深入解析了5脚188数码管的驱动原理,重点介绍了查理复用技术如何通过5个IO引脚高效驱动188段显示,并详细探讨了TM52F1363单片机的寄存器配置与驱动实现。文章还提供了常见问题的解决方案和性能优化技巧,帮助开发者避免实际应用中的各种陷阱。

weixin_29159441的博客 481

mysql数据库遇到:org.hibernate.MappingException: No Dialect mapping for JDBC type: -1

在做web项目时,用到了mysql数据库和ssh架构,登录系统后,做查询时候,查询出来的list应该为null,但结果却报下面的错误: org.hibernate.MappingException: No Dialect mapping for JDBC type: -1 分析原因:hibernate无法将指定的数据库类型转换为java中的类型而导致的错误。 解决方法:自定义一个mysql方...

天高任鸟飞,海阔凭鱼跃 446

【自用】吉林大学计算机系统结构第二章:缓存优化 曲冠南老师版 笔记

容量8KB,2的十三次方,块大小16B,一块用掉四位,剩余2的九次方是标志位,则有512行,每个元素8B,则一块两个元素,a数组150块,b数组152块,不出现容量失效。不管是否交换内容,在同一“伪相联”组中的两块都是用同一个索引得到的,因此失效率相同,即:失效率伪相联=失效率2路。伪相联cache的命中时间等于直接映象cache的命中时间加上伪相联查找过程中的命中时间*该命中所需的额外开销。(6) 由编译器控制的预取,硬件预取的替代方法,在编译时加入预取的指令,在数据被用到之前发出预取请求。

weixin_73587775的博客 1616

No Dialect mapping for JDBC type 错误分析

出现这个问题可能的原因: 1、数据库字段类型和JAVA类型不匹配。 2、Hibernate中错误地配置了数据库方言。 原因1解决方法: 查看java.sql.Types找到对应的类型。 1 ARRAY 2003 2 BIGINT -5 3 BINARY -2 4 BIT -7 5 BLOB 2004 6

天河北的梅果糖 1万+

Ardupilot无人船(车)mavros自主控制

rover 4.4。

超维空间科技的博客 3231

出现 Transaction rolled back because it has been marked as rollback-only 解决方法

出现 Transaction rolled back because it has been marked as rollback-only 解决方法

码农研究僧的博客 1万+

nested exception is org.hibernate.MappingException:No Dialect mapping for JDBC type -16解决方案

nested exception is org.hibernate.MappingException:No Dialect mapping for JDBC type -16解决方案 解决方案: 1.检查方言映射的配置文件 2.如果用的 是sqlserver数据库,hibernate映射不了nvarchar(MAX)类型 ...

weixin_39400186的博客 1938

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

No Dialect mapping for JDBC type 错误分析,Hibernate和数据库类型对应

当在hibernate中运用原始的sql语句进行操作的的时候,常常会报错,错误很多都是关于  No Dialect mapping for JDBC type类型的错误,经过分析和查找,问题常常发生在几个地方  1、错误的配置了hibernate的方言  2、就是你的数据库中的字段和java里面的类型不匹配的问题 查找原因:通过查询hibernate的源码,找到问题的根本所在,就是

mingming_vip的专栏 3808

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

No Dialect mapping for JDBC type 0

请看好,我这个是0,类型是0 解决办法:先点赞,点赞后就学习就更稳当了。。以后出错也少了 哈哈,开个玩笑! 编写自己的类!首先出错的原因是jhiberna中并没有定义null值,所以自己需要为hiberna添加null类型;编写自己的dialect类:public class Dialect extends MySQLDialect { public Dialect(){

webpain的博客 2892

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

报错: org.hibernate.MappingException: No Dialect mapping for JDBC type: -16

报错说明:hibernate不能将这种数据类型映射到你的java类中 解决方案:自定义一个Hibernate Dialect,方言映射 type: -16 对应 Types.LONGNVARCHAR package com.v2.framework.dialect; import java.sql.Types; import org.hibernate.Hibernate; import org.hibernate.dialect.SQLServerDialect; /** * MSSQL数据库的Di

m0_47397104的博客 991

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

今天写原生态SQL调用Hibernate查询数据库报以下异常:

2万+

No Dialect mapping for JDBC type: 2002; nested exception is org.hibernate.MappingException: No Diale

项目中报错,各种查资料,最后将要查询出的字段名都select出来,然后distinct即可。

qq_39496661的博客 247

org.hibernate.MappingException: No Dialect mapping for JDBC type: 101

org.hibernate.MappingException: No Dialect mapping for JDBC type: 101 原因:数据类型映射错误,找不到对应的数据类型,仔细找了下,是因为BINARY_DOUBLE这个数据类型(版本兼容性不好)对应不上 解决办法:1.找出那个表的字段用了这个数据类型,先略过该表,之后单独解决,修改数据类型。 SELECT owner,table_name, column_name, data_type FROM dba_tab_cols wher.

sqlora的专栏 830

hibernate no dialect mapping for jdbc type

    项目运用到hibernate,有时候不可避免的使用原生SQL进行某些查询。用hql查询的话,因为实体配置文件的映射,数据库的字段被映射的不同java数据类型上,原生sql查询返回的结果集中一旦存在hibernate无法映射的数据类型的话,就会报 no dialect mapping for jdbc type 的异常,type后面的数字是每个类型的代码,例如3代表的是Decimal类型的转...

cobo1985的专栏 249

org.hibernate.MappingException: No Dialect mapping for JDBC type: 101 Position: 0

使用squirrel-sql连接oracle数据库后,查看创建表的

珑歆逸的专栏 2593

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

Stacktraces org.hibernate.MappingException: No Dialect mapping for JDBC type: -4 org.hibernate.dialect.TypeNames.get(TypeNames.java:56) org.hibernate.dialect.TypeNames.get(TypeNames.java:81)

itmyhome的专栏 4366

关于No Dialect mapping for JDBC type :-9 hibernate执行原生sql语句问题

今天做了个用hibernate直接执行原生sql的查询,报错No Dialect mapping for JDBC type :-9 在网上查了一下。有很多解决方法,这里总结一下。方便大家查找。 第一种: No Dialect mapping for JDBC type: 3; 查看文章  ERROR 解决记录 - No

xd195666916的专栏 6万+

hibernate查询报错之No Dialect mapping for JDBC type -9

从错误可以看出是没有方言映射到JDBC的类型,由于使用的是Hibernate映射的数据库方言,且查询数据库字段是NVARCHAR2()类型的,原因就是是NVARCHAR2()类型映射不到Java数据类型。 我们项目中使用的数据库是orcale 12c的,通过查看hibernate源码发现Orcale12cDialect继承10,然后10继承9,跟踪源代码发现并没有对Nvarchar类型做处理,那么我们自己处理一下即可 首先我们创建自己的一个方言类,这儿我继承自Orcale12cDialect,对需要处理

夜行者的博客 2420

No Dialect mapping for JDBC type: -1;

系统报错: No Dialect mapping for JDBC type: -1; nested exception is org.hibernate.MappingException: No Dialect mapping for JDBC type: -1   好几次碰到这个问题,每次都匆匆忙忙的解决了,这个写个东西记录下来,以后直接用。   一看见Dialect就知道这个H...

总有一天,你的日积月累,会成为别人的望尘莫及 632

Caused by: org.hibernate.MappingException: No Dialect mapping for JDBC type: -4

错误代码:org.springframework.orm.hibernate3.HibernateSystemException: No Dialect mapping for JDBC type: -4; nested exception is org.hibernate.MappingException: No Dialect mapping for JDBC type: -4 at o

Java_Mr_Zheng的博客 3424
上一篇: addChild()的区别addChildAt()
下一篇: Win7自动更新导致键盘失灵
xiangliling
博客等级 码龄20年 0粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值