2016-08-19 3 views
0

Ниже мой sql, который я хочу преобразовать в HQL. Может кто-нибудь, пожалуйста, помогите мне с этим? Я также разместить свой HQL, которая в настоящее время дает мне исключение NullPointer -Несколько внутренних соединений в HQL

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) 

ответ

0

дайте нам знать, какие Versi в спящем режиме вы бежите. , вероятно, это поможет указать вашу проблему как можно более воспроизводимую для других. Ваше внутреннее соединение кажется очень сложным для всех, кто не находится в вашей бизнес-области ...

всякий раз, когда вы начинаете запросы путем объединения строк ... для меня это признак того, что вы потеряли контроль над своим бизнес-доменом, так как вы не выбирайте способ выделения запросов jpa/hibernate.

Смежные вопросы