最近写一个查询,因为要用到其他组件中的表,去做一个查询,不想去关联他的实体(这样可能造成依赖,在打包时出现问题),于是决定用jdbc来做查询,hibernate版本为3.0,查询了两个字段select p.url,p.state from PTM p where p.billId=?其中url为varchar,state为char(2),测试程序总是通不过,DEBUG时发现state的值只有1位,类型为Character,转为String之后,还是一位,很郁闷,在网上搜索了一下,发现有说char类型字段在作条件时查不到数据的问题,说这是OracleJDBC驱动的一个bug,要用trim一下,然后塞入条件,就可以查询到要用的数据。[quote]eg:如果上边要用state作条件的话,应该这么写:select * from PTM p where trim(p.state)='01'[/quote]
于是把上边的查询改为select p.url,trim(p.state) from PTM p where p.billId=?测试一跑,通过了,很高兴。呵呵!写一下如果有人遇到可以看看。
于是把上边的查询改为select p.url,trim(p.state) from PTM p where p.billId=?测试一跑,通过了,很高兴。呵呵!写一下如果有人遇到可以看看。