`
may_cauc
  • 浏览: 43776 次
社区版块
存档分类
最新评论

hibernate和oracle中char类型的冲突

阅读更多
测试的时候采用的mysql数据库,没什么问题,但是后来移植到oracle数据库的时候发现一个问题。

hibernate中如果采用Criteria 和 example查询oracle中对应的char列的时候必须要补全空格才行
比如oracle中char(6),那么对象的属性是“123   ”才会相等,而“123”就不等。但如果oracle中列采用varchar2则不会有这个问题。

单独采用hibernate还好办,我在中间加一层处理字符串即可。

最近学习seam的过程中发现seam中jpa也有这个问题,如果entity中定义为string,则jboss启动肯定会报错,说找不到某列相对应的varchar2(xx),但是我的数据库中列都是char型的。
由于数据库已经固定了,不可能改变数据库,请问谁有成熟的解决方案?
分享到:
评论
6 楼 抛出异常的爱 2007-11-08  
放在pojo的get方法中去。。。
不爽的话还可以重构一下pojo的基类,
再不行就拦截form来作。。。
5 楼 may_cauc 2007-11-08  
抛出异常的爱 写道
从前台传过来的条件为123时
让条件= “123空格空格空格”;
空格的数量是把总char长度减去条件的长度

这种方法可以,就是稍微有点烦。

movingboy 写道
不能改变数据库,但你可以改变列的数据类型啊!把char(x)改成varchar2(x)就可以了


这个对遗留数据库肯定不行,并不是我们一个系统在用数据库啊。
4 楼 movingboy 2007-11-07  
不能改变数据库,但你可以改变列的数据类型啊!把char(x)改成varchar2(x)就可以了
3 楼 抛出异常的爱 2007-11-07  
从前台传过来的条件为123时
让条件= “123空格空格空格”;
空格的数量是把总char长度减去条件的长度
2 楼 thebest 2007-11-07  
请问怎么加一层字符串处理?如果对象中的有数据的成员是动态的
1 楼 tysword 2007-11-05  
顶一下。遇到类似问题。

相关推荐

    oracle基础练习.docx

    Oracle提供多种数据类型,如CHAR、VARCHAR2、NUMBER、DATE以及LOB(包括BLOB和CLOB)。日期格式可以使用TO_DATE函数转换,例如`to_date('2016-6-1','yyyy-MM-dd')`,或者直接使用DATE'2016-6-1'。 分析函数如RANK()...

    最新JAVA面试题总结之数据库.docx

    Oracle 中经常使用到的函数包括 Length 长度、lower 小写、upper 大写、to_date 转化日期、to_char 转化字符、Ltrim 去左边空格、substr 取字符串、add_month 增加或者减掉月份、to_number 转变为数字等。...

    oralce和db2兼容开发注意事项

    在Oracle中,通常使用`to_char`和`to_date`函数进行日期时间的转换,而DB2可能需要使用不同的函数。在上述示例中,Oracle的日期时间格式化被转换为了DB2兼容的表达方式,但实际操作中可能需要根据DB2的具体函数来...

    一些简单的java入门程序

    Java的基本语法包括变量声明、数据类型(如int、float、char、boolean等)、运算符(算术、比较、逻辑、位操作等)、流程控制语句(如if、for、while、switch)和方法定义。 2. **类与对象**: Java是面向对象的...

    Java_Programming_Tutorial.rar_java programming

    1. **变量与数据类型**:Java有八种基本数据类型,包括整型(byte, short, int, long)、浮点型(float, double)、字符型(char)和布尔型(boolean)。除此之外,还有类、接口和数组等引用数据类型。 2. **类与...

    J2EE武功秘籍

    - **Oracle**:`ROWNUM` 或 `FETCH FIRST n ROWS ONLY` - **SQL Server**:`OFFSET` 和 `FETCH` **2. 悲观锁和乐观锁原理** - **悲观锁**:假设会发生并发冲突,锁定数据,在更新时进行检查。 - **乐观锁**:假设...

    student_course.zip_Java编程_Java_

    - **数据类型**:Java有基本数据类型(如int、float、char)和引用数据类型(如类、接口、数组)。 - **控制结构**:包括if语句、switch语句、for循环、while循环等,用于控制程序流程。 - **异常处理**:Java...

    study_base:学习基地-充实自己

    在Java中,包(Package)是用来组织类和接口的,可以避免命名冲突,提高代码的可维护性和重用性。“study_base-main”可能就是包含了学习资料的主目录,其中可能包含了各种Java相关的源代码文件(.java)和编译后的...

    JavaIntro:学习Java

    - **基本类型**:包括整型(byte、short、int、long)、浮点型(float、double)、字符型(char)和布尔型(boolean)。 - **引用类型**:类、接口和数组,它们都是对象的引用。 4. **控制结构**: - **流程控制...

    Introduction_to_Java

    - 数据类型:Java分为基本数据类型(如int、char、float)和引用数据类型(类、接口和数组)。 - 控制结构:包括条件语句(if...else、switch)、循环(for、while、do...while)以及跳转语句(break、continue)...

Global site tag (gtag.js) - Google Analytics