• hibernate createSQLQuery StringIndexOutOfBoundsException: String index out of range: 0


    有一个sql用union拼接的如下:

    select id,(**还有很多字段**),'' as NewName from tb1
    union
    select id,(**还有很多字段**),name as NewName from tb2
    union
    select id,(**还有很多字段**),name as NewName from tb3

    tb1表中不存在这个字段所以用'' as NewName
    tb2,tb3中有这了个字段是varchar的
    查询以一直报错:StringIndexOutOfBoundsException: String index out of range: 0
    1.但是每个select单独查询完全没问题 ,开始以为是union的问题,

    2.去掉NewName 这个字段后也没问题,.以为是sql太长了,

    3.解决:最后网上查是因为:处理方法  数据表字段为char导致,修改为VARCHAR. 建表时不要使用char类型,为null就会报以上错误

    原因是tb1中:'' as NewName以为是char而下面有数据的是varchar所以union的时候类型不一样就会报错。

    最后把:  '' as NewName  改成  null as NewName 

    改完成SQL如下,搞定:

    select id,(**还有很多字段**),null as NewName from tb1
    union
    select id,(**还有很多字段**),name as NewName from tb2
    union
    select id,(**还有很多字段**),name as NewName from tb3

     和上面相反的问题 

    hibernate  createSQLQuery报错: MappingException: No Dialect mapping for JDBC type: 0

    有SQL,只有一个select:

    select id,(**还有很多字段**),null as isVisit from Table

    报错MappingException: No Dialect mapping for JDBC type: 0

    (isVist数据库中不存在这个字段)把:  null as isVisit  改成  null as isVisit 搞定:
    select id,(**还有很多字段**),'' as isVisit from Table
     


  • 相关阅读:
    JS基础算法题(一)
    JS数组的迭代器方法
    使用IcoMoon制作字体图标
    CSS浮动属性
    使用hibnate向数据库写入图片对象
    hibernate_基本配置和初始化步骤
    ORM框架
    Jsp中的session
    mysql的自我复制
    分页技术
  • 原文地址:https://www.cnblogs.com/q149072205/p/11934945.html
Copyright © 2020-2023  润新知