`

Hibernate执行含有常量的查询语句时,只返回常量的第一个字符

阅读更多
案例:
执行如下语句:
select 'CRM' System, t.* from test t;
通过Hibernate执行时,取到的system是字符'C',并非'CRM'

解决方案:

1、sql语句改为select decode(1,1,'CRM') as System,t.* from test t;

2、sql语句改为select cast('CRM' as varchar2(3)) as System,t.* from test t;

3、继承一个Dialect,注册CHAR类型的对应方式
public class OracleDialect extends org.hibernate.dialect.SQLServerDialect
{
	public OracleDialect()
	{
		super();
		registerHibernateType(Types.CHAR, Hibernate.STRING.getName());
	}
}
分享到:
评论

相关推荐

    hibernate连接各种数据库的方法

    此配置用于定义查询语言中的常量或函数名称,以便在查询中使用。 ##### 3.2 平台配置(Platforms) 平台配置用于设置特定于数据库的参数,包括方言、驱动程序、连接字符串等。下面我们将逐一介绍如何配置几种常见...

    SQL格式化功能(JAVA代码)

    虽然Hibernate主要负责将Java对象与数据库表之间的映射,但它也提供了对SQL查询的支持,包括动态生成和执行SQL语句。在处理复杂的查询时,自动生成的SQL可能会变得难以阅读和理解,这就需要SQL格式化工具来帮助优化...

    SQL转Java代码小工具

    意味着该工具处理的不仅是单行的SQL语句,还能处理复杂的多行查询,将其转换成一个Java字符串常量,这样这个字符串就可以直接在Java代码中被`Statement`、`PreparedStatement`或ORM框架如Hibernate的`Session`对象...

    java笔试面试题(含有笔试题,核心技术,重点知识,struts,hibernate,spring,eclipse)

    - **String**:不可变字符串,适用于常量字符串的场景。 - **StringBuffer/StringBuilder**:用于字符串操作,StringBuffer线程安全,StringBuilder非线程安全但效率更高。 - **Math**:提供基本数学运算方法。 - **...

    Hibernate-HQL

    HQL(Hibernate Query Language)是Hibernate提供的一个面向对象的查询语言,它类似于SQL,但更贴近Java对象模型,使得在处理Java对象时查询更加直观和方便。 HQL的主要知识点包括: 1. **基本查询**:HQL支持简单...

    解析Hibernate + MySQL中文乱码问题

    本文将深入解析在使用Hibernate框架与MySQL数据库时遇到的中文乱码问题,以及如何解决这一问题。 首先,我们需要理解中文乱码出现的根本原因。当Java应用程序中的持久化类包含中文字符串,并通过Hibernate映射到...

    mybatis学习笔记

    **定义SQL语句**:使用字符串常量定义SQL语句,其中“?”作为占位符。 4. **获取PreparedStatement**:通过`Connection`创建预编译语句对象。 5. **设置参数**:设置SQL语句中的参数。 6. **执行查询**:调用`...

    java面试题

    Struts1只是在第一次请求的时候创建一个action实例,以后每次相同的请求都直接从内存中去读取,它是单例模式,安全性较差。 Struts2是如何实现MVC模式的? 答:在Struts2里面是将每次页面的请求进行处理,然后将请求...

    java必备知识点大全.pdf

    final、finally、finalize三者区别:final用于声明常量,finally用在try-catch-finally语句中表示必须执行的代码块,finalize是Object类的一个方法,垃圾回收器在销毁对象之前会调用它。 Io流的层次结构:Java中Io...

    自己总结java笔试面试题

    此外,当字符串常量在代码中被多次使用时,JVM会将其放入字符串池中,以避免重复创建相同的字符串对象,这可以通过`==`来验证两个字符串引用是否指向同一个对象。 ### 3. Unicode与字符编码 Java中,`char`类型...

    java编码规范

    - 公共类必须是该文件中的第一个声明。 #### 4. 缩进排版 良好的缩进和排版习惯有助于提高代码的可读性。 ##### 4.1 行长度 建议每行代码的长度不超过80个字符。过长的行可能会导致阅读困难,特别是在使用小屏幕...

    Java面试宝典

    而&&是短路与运算符,如果第一个表达式为false,则不会执行第二个表达式。 4. 在Java中跳出多重嵌套循环通常使用标签和break语句。 5. switch语句在Java 7之后可以作用于String类型,而byte和long类型在Java中也...

    Java面试经典题

    - 在 try 语句块内使用 return 语句时,finally 块内的代码总是会被执行,不论 try 语句块内是否抛出了异常。 - 如果 try 语句块内没有抛出异常,则 finally 块会在 return 语句之前执行。 - 如果 try 语句块内抛出...

    SSH+EXT如何返回JSON

    - 构造SQL查询语句,这里假设有一个`LocationPo`实体类表示数据库中的地点信息表。 - 调用业务逻辑层的方法获取符合条件的数据列表。 4. **构建JSON数据结构**: - 创建一个`List<BasicJson>`类型的列表,用于...

    总结问题集合

    `Connect By Prior`是Oracle数据库中的一个特殊查询语句,用于检索具有层次结构的数据。它允许你定义节点之间的父/子关系,并按层次顺序检索结果。例如: ```sql SELECT * FROM TBL_TEST START WITH id = 10 ...

    servlet实现增删改查.docx

    这里,SQL语句是一个插入操作,将新的学生信息插入到`student`表中。 对于更复杂的增删改查操作,通常会使用`PreparedStatement`来提高效率和安全性,避免SQL注入攻击。`PreparedStatement`可以预编译SQL语句,然后...

    Java-Learning-Made-Easy.zip_TEACH

    - 学习编写第一个Java程序,通常是从打印"Hello, World!"开始的。这涉及到创建一个公共类(public class)和主方法(main method)。 3. **语法基础** - 关键字、标识符、注释:了解Java中的关键字,如何命名变量...

    IT名企JavaEE面试题最新整理(附答案)

    初始化在Servlet被加载或者第一次访问时进行,服务方法处理客户端请求,销毁则在Servlet卸载时进行。若配置在web.xml中,则Servlet会在Web应用启动时即被加载和初始化。 Servlet与CGI(Common Gateway Interface)...

    JAVA核心知识点整理

    * 控制流语句:用于控制JAVA程序的执行流程,包括if语句、switch语句、for循环语句、while循环语句等。 * 函数:用于封装JAVA程序的代码,提高代码的可读性和可维护性。 Java高级特性 JAVA高级特性是JAVA语言的...

Global site tag (gtag.js) - Google Analytics