1、表主键生成方式guid
2、log.debug(sql.toString());
sql语句pl/sql运行后jh.fds_dsjsb_id为正常的值
生成的sql语句如下:
select distinct jh.fds_id as jhId, kc.fds_kcbh,kc.fds_kcmc,dw.fds_mc,jh.fds_jxb,jh.fdn_skzxs,jh.fdn_skzzxs,jh.fds_czzt,jh.fdn_yjxkrs,jh.fds_kcmm,jh.fds_dsjsb_id from tb_py_xqjxjhb jh,tb_py_kcglxxb kc,tb_py_yxsmb dw where jh.fds_kczkxxb_id=kc.fds_id and jh.fds_kkdwm=dw.fds_dm and jh.fds_czdm='Y' and jh.fds_xnxqb_id='B5BD680B5991413386B122AE3BE58A44' and jh.fds_kkdwm='001' order by kc.fds_kcbh3、session.createSQLQuery(sql.toString());
  list中的object[10]即需要查询的主键jh.fds_dsjsb_id始终为数据中guid值得第一位;请问:为什么不能取得全值而只能取的第一位呢?

解决方案 »

  1.   

    好比生成的主键值为:B5BD680B5991413386B122AE3BE58A44
    结果只取到:B
      

  2.   

    主键你设置为guid了。存储和读取也应该是guid呀。
    是不是你长度设置有问题?
    你试着在你得到后直接输出看看guid形式
      

  3.   

    1、debug数据只有一位;在页面直接使用EL取也是一位;
    2、我检查了下xml配置数据长度与数据库长度都没错;
      

  4.   

    坦白说我不清楚 在这里我也说个我遇到的BUG我在HQL里这么写的String hql = "select case when .... then ... when ... then .... else ... end from table";我在case语句中返回的是汉字 查询出来的时候也是用OBJECT[]获得的 但是返回的汉字只有第一位 不知道为什么
    LZ可以尝试换个JAR包看看 说不定就好使了
      

  5.   


    补充 HIBERNATE输出的语句我放到PL/SQL上运行 结果是我想要的 但是到了OBJECT[]数组里就变了样子 
    补充完毕
      

  6.   

    up  
    我也遇到了同样的问题SELECT   CASE
                WHEN age <= 35
                   THEN '35岁及以下'
                WHEN age > 35 AND age <= 45
                   THEN '36岁至45岁'
                WHEN age > 45 AND age <= 54
                   THEN '46岁至54岁'
                WHEN age > 54 AND age <= 59
                   THEN '55岁至59岁'
                ELSE '60岁及以上'
             END sec,
             COUNT (1) num
        FROM m_party_members
       WHERE years = :v_year
    GROUP BY CASE
                WHEN age <= 35
                   THEN '"35岁及以下"'
                WHEN age > 35 AND age <= 45
                   THEN '36岁至45岁'
                WHEN age > 45 AND age <= 54
                   THEN '46岁至54岁'
                WHEN age > 54 AND age <= 59
                   THEN '55岁至59岁'
                ELSE '60岁及以上'
             END;
    结果应该为 :46岁至54岁   13
               60岁及以上   28
               36岁至45岁   13
                 55岁至59岁  11
                 35岁及以下   23
    实际结果为:
                 4     13
               6      28
               3     13
               5     11
               3     23
      

  7.   


    我的问题我解决了 在hibernate.fbm.xml中指定一下数据类型</sql-query>
    <sql-query name="partyMemberAgeChartData">
    <return-scalar column="sec" type="java.lang.String"/>
    <return-scalar column="num" type="java.lang.Integer"/>
    <![CDATA[

        ]]>
    </sql-query>
      

  8.   

    我的问题我解决了
    在Hibernate.hbm.xml文件设置一下返回数据的类型
    <sql-query name="partyMemberAgeChartData">
    <return-scalar column="sec" type="java.lang.String"/>
    <return-scalar column="num" type="java.lang.Integer"/>
    <![CDATA[
    sql语句。
        ]]>
    </sql-query>
      

  9.   

    Hibernate 的 Entry 中配置的 guid 的长度是不是1。。 ?