[英]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.