簡體   English   中英

HQL中的多個內部聯接

[英]Multiple Inner join in HQL

下面是我想轉換為HQL的SQL。 有人可以幫我嗎? 我還發布了我的HQL,它目前給我一個nullpointer異常-

   select ti.tax_id_no,
   u1.user_id,
   u1.user_nm_fst,
   u1.user_nm_lst,
   u1.user_ph_no,
   u1.user_email
   from pcmp.tax_identifier ti
   inner join (select ucax.user_id, ucax.cust_id
           from pcmp.users_customer_access_xref ucax
          where ucax.ptcp_typ_cd = 'insrd'
            and ucax.void_ind = 'n'
            and ucax.user_cust_accs_xref_end_dt is null) ucax1
on ucax1.cust_id = ti.cust_id
inner join (select u.user_id,
                u.user_nm_fst,
                u.user_nm_lst,
                u.user_ph_no,
                u.user_email
           from pcmp.users u
          where u.user_end_dt is null
            and u.user_void_ind = 'n') u1
on u1.user_id = ucax1.user_id
where ti.tax_id_no = '830204947'-- '465202523'
and ti.void_ind = 'n'
and ti.tax_id_end_dt is null

我嘗試使用以下查詢,但遇到錯誤-

        String queryString = "select u from User u"
                + " INNER JOIN u.ucax userCustomerAccessXref"                   
                + " INNER JOIN u.ti taxIdentifier"
                + " where taxIdentifier.tax_id_id = ?1"; 

我使用上述查詢得到的例外是-

java.lang.NullPointerException

org.hibernate.hql.ast.HqlSqlWalker.createFromJoinElement(HqlSqlWalker.java:383)
org.hibernate.hql.antlr.HqlSqlBaseWalker.joinElement(HqlSqlBaseWalker.java:3585)
org.hibernate.hql.antlr.HqlSqlBaseWalker.fromElement(HqlSqlBaseWalker.java:3366)
org.hibernate.hql.antlr.HqlSqlBaseWalker.fromElementList(HqlSqlBaseWalker.java:3239)
org.hibernate.hql.antlr.HqlSqlBaseWalker.fromClause(HqlSqlBaseWalker.java:726)

讓我們知道您正在運行的休眠版本。 可能會有助於說明您的問題對其他人盡可能重現。 對於不在您的業務領域內的任何人,您的內部加入似乎都很復雜...

每當您通過連接字符串開始查詢時...對我來說,這表明您對業務域失去了控制,因為您沒有選擇外部指定jpa / hibernate查詢的方式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM