Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Hibernate HQL问题与IN子句_Java_Hibernate_Hql - Fatal编程技术网

Java Hibernate HQL问题与IN子句

Java Hibernate HQL问题与IN子句,java,hibernate,hql,Java,Hibernate,Hql,当我尝试转换以下HQL查询时: 选择不同的rgp.dgRegexGroups.regexGroup,0从dgregexpertns rgp中选择,其中rgp.dgRegexGroups.id不在(1,05,6,07) 使用Hibernate dynamic query translator,它为我提供了正确的SQL语句,如: select distinct dgregexgro1_.regex_group as col_0_0_, 0 as col_1_0_ from dg_re

当我尝试转换以下HQL查询时:

选择不同的rgp.dgRegexGroups.regexGroup,0从dgregexpertns rgp中选择,其中rgp.dgRegexGroups.id不在(1,05,6,07)

使用Hibernate dynamic query translator,它为我提供了正确的SQL语句,如:

select
  distinct dgregexgro1_.regex_group as col_0_0_,
  0 as col_1_0_ 
 from
  dg_regex_patterns dgregexpat0_,
  dg_regex_groups dgregexgro1_ 
 where
  dgregexpat0_.regex_group_id=dgregexgro1_.id 
  and (
   dgregexpat0_.regex_group_id not in  ( 1,5,6,7 )
  )
但是如果我在in子句中添加08或09,它会给我QuerySyntaxException

    org.hibernate.hql.ast.QuerySyntaxException: unexpected token: 9 near line 1, column 136 [select distinct rgp.dgRegexGroups.regexGroup, 0  FROM 
com.dataguise.hibernate.DgRegexPatterns rgp where rgp.dgRegexGroups.id not in ( 09)]

有人知道为什么会这样吗?这是一个特定于hibernate版本的问题吗?因为我目前使用的是Hibernate-3.3版本。有人在最新的hibernate版本中测试过这个问题吗?

是否尝试用查询参数替换“in”部分中的硬编码参数,如:p。然后将参数路径设置为List和call query execution。

您尝试过8和9吗?08和09可能被解释为(非法)八进制数。为什么要使用来自转换器的动态查询?不能直接使用HQL查询吗?添加08和09之后,您的查询是什么样子的,是的,我尝试了8和9,它与他们一起工作,但请你详细说明为什么它认为08和09是非法八进制数字,因为再次查询成功运行010……017个数字。我同意MKM13,它可能会考虑08和09无效八进制数,因此查询断开。如果你想建议或要求OP尝试一些东西,请在评论中这样做,而不是作为答案:)