用Hibernate在一定程度上可以实现跨数据库,但有些时候还是有些问题的,即使没有涉及到数据库的高级特性.最近开发了一项目,开始是在windwos+sql server2000,而服务器环境是Linux + Postgresql.我们知道sql server下判断boolean类型是写=0或1,而postgresql下呢,判断boolean类型是=false或true.但我们是用hibernate3做中间件来完成映射的.那HQL里应该怎样对boolean类型进行判断呢?
我们以从数据库里查询所有未打上删除标记的文章记录为例,第一种写法:
find("from Article as t where t.delFlag = false");
这种写法在sql server2000下是肯定不能运行的,但postgresql下可以;
再看第2种写法:
find("from Article as t where t.delFlag = 0");
这种写法在postgresql下肯定不行,但sql server2000下却可以;
第3种写法:
find("from Article as t where t.delFlag = ?",false);
这种写法在postgresql下和sqlserver2000下都是可以的.
我们得出的结论是:不要在Hql里拼接字符串.
同时也期待新版本的Hibernate能有更好的容错能力.
分享到:
相关推荐
在表1中,列举了Kingbase ES 3.1和SQL Server 2000之间共同的数据类型,比如datetime、timestamp、boolean等,以及各自特有的数据类型。数据类型的对应关系是数据迁移过程中的一个重要参考,能够帮助开发者了解如何...
在 Java 中,对数据库的操作需要通过 JDBC(Java Database Connectivity)来实现,而在 JDBC 中,需要将 SQL Server 的数据类型映射到 Java 中的数据类型。下面将详细介绍 SQL Server 数据库类型对应 Java 中的数据...
### 连接远程SQL Server数据库并执行SQL语句 在IT行业中,远程访问数据库是非常常见的需求之一,尤其是在分布式系统或需要跨地域管理数据的情况下。本文将详细介绍如何通过编程方式连接到一个位于远程服务器上的SQL...
【SQL Server 2008数据库实用教程】深入解析T-SQL语言 T-SQL,全称为Transact-SQL,是Microsoft SQL Server数据库管理系统中基于ANSI SQL-99标准的扩展实现。它是SQL Server的核心,用于管理和操作数据库中的数据。...
### SQL Server 常用字段类型详解 在数据库设计与管理中,选择合适的字段类型对于数据的存储效率、查询性能以及数据完整性至关重要。SQL Server 提供了丰富的数据类型,覆盖了从基本数值到复杂文本、图像等各类数据...
例如,`GRANT`、`DENY`和`REVOKE`命令用于控制用户对数据库对象的访问。 8. **备份与恢复**:了解SQL Server 2005的备份策略,包括完整备份、差异备份和日志备份。学会使用`BACKUP`和`RESTORE`命令,以应对数据丢失...
MySQL、Oracle和SQL Server是三大主流的关系型数据库管理系统(RDBMS),它们各自具有独特的特性和功能。数据类型是数据库中的基本构建块,定义了数据的结构和意义。而SQL Server 2008中的快捷键则能提高开发人员和...
在进行数据库开发时,尤其是在使用 SQL Server 作为后端数据库并与 Java 应用程序进行交互时,了解 SQL Server 的数据类型与 Java 数据类型的对应关系非常重要。这种对应关系有助于确保数据在数据库与应用程序之间...
这是因为Oracle和Sql Server在处理`DateTime`类型时采用了不同的扩展实现方式。 #### 六、Timestamp类型的差异 - **Sql Server**:`Timestamp`类型是以二进制格式存储的,可以将`DataSet`中的该字段类型设置为`...
当我们在使用Hibernate时,我们需要了解Java数据类型如何与SQL数据类型对应,以便正确地配置实体类和Hibernate的映射文件(通常是.hbm.xml文件或使用注解的方式)。例如,Java的`int`类型通常对应于SQL的`INTEGER`,...
对于许多初学者而言,由于熟悉Microsoft Access而对SQL Server 2000的使用较为陌生,本篇文章旨在详细介绍如何将Access数据库转换为SQL Server 2000数据库,并在此过程中需要注意的一些事项。 #### 二、转换步骤...
Access 和 SQL Server 都是常用的数据库管理系统,但它们在语法上存在一些差异,本文将对 Access 和 SQL Server 的语法差异进行总结和比较。 日期函数 Access 中的 Date() 函数对应 SQL Server 中的 getdate() ...
根据提供的文件信息,我们可以归纳出一个关于SQL Server基础操作类的知识点总结,主要涉及数据库连接、关闭、查询和更新的基本方法。以下是对这些知识点的详细解释: ### SQL Server 基础类概述 #### 一、类的定义...
选择合适的数据类型对数据库的性能和准确性至关重要。 3. 数据库设计: 正确的数据库设计涉及范式理论,如第一范式(1NF)、第二范式(2NF)、第三范式(3NF)和BCNF(Boyce-Codd范式)。理解这些范式有助于减少...
3. **数据类型**:理解SQL Server支持的各种数据类型,如INT、VARCHAR、DATE、BOOLEAN等,它们决定了如何存储和处理不同类型的数据。 4. **索引与查询优化**:索引能显著提高查询速度,学习如何创建、管理和使用...
5. 创建登录:为Windows 2000用户或组在SQL Server中建立登录账号,可以使用多种方式,包括系统存储过程、系统表或通过企业管理器,因此选项D是正确的。 6. 默认值:在SQL Server中,逻辑型(Boolean)数据类型的...
通过这次训练,你将深入理解Hibernate如何处理不同数据库字段类型,并学会如何在实际项目中灵活运用,提升开发效率和代码质量。记住,熟练掌握这些知识是成为一名高效Java开发者的必备技能之一。
命名都采用英文字符,每个单词的首个字母要大写 2.7 SQL语句的编写规范 数据库中存储过程和触发器中涉及大量的SQL语句,对SQL语句的编写规范如下: 关键字大写:在SQL语句的编写中,凡是SQL语句的关键字一律大写,如...