日期:2014-05-17  浏览次数:20766 次

急:HQL使用OR语句,部分内容没有被执行
 SELECT
        *
    FROM
        MMZW.READ_DOCUMENT readdocume0_,
        MMZW.OADOCUMENT oadocument1_ 
    WHERE
        readdocume0_.DOCUMENT_ID=oadocument1_.ID 
        AND readdocume0_.ADD_USER_ID='9318898d39c4abb10139d8394db00037' 
        AND (
            readdocume0_.FLOW_ID LIKE '%11%' -- 这个没有执行
            OR oadocument1_.FLOWID LIKE '%11%'
        ) 


------解决方案--------------------
原来是这样呀,你一个表关联了另一个表,比如如这样 有atable,btable两张表,b表里有a表的的id这样写就ok了呀
select a from atalbe a ,btable b where b.atableId=a.id and a.id=?1 就行了呀
------解决方案--------------------
引用:
Quote: 引用:

SELECT
????????*
????FROM
????????MMZW.READ_DOCUMENT?readdocume0_,
????????MMZW.OADOCUMENT?oadocument1_?
????WHERE
????????readdocume0_.DOCUMENT_ID=oadocument1_.ID?
????????AND?readdocume0_.ADD_USER_ID='9318898d39c4abb10139d8394db00037'?
        AND  readdocume0_.FLOW_ID LIKE '%11%'

这样子,查一下有结果吗。没有就是真的没有,不是你语句问题

我刚也发现了,使用这个方法也查询不出数据,但是
    SELECT
*
    FROM
        MMZW.READ_DOCUMENT readdocume0_ 
    WHERE
        readdocume0_.ADD_USER_ID='9318898d39c4abb10139d8394db00037' 
        AND  readdocume0_.FLOW_ID LIKE '%11%'

如果是这样查询的话,可以查询出数据

这你还能不懂啊,你确定一下前后条件差别。readdocume0_.DOCUMENT_ID=oadocument1_.ID?还要在这两个相等的情况下的哇