hql语句查询报错
<p>hql语句查询报错,</p>
<pre><code>List&lt;GroupResource&gt; list3 = genericDao.findAll(&quot; from GroupResource where resourceStatus = ? and name like ? and (group.id = ? or group.id = ? or group.id = ? or group.id = ? or group.id = ? or group.id = ? ) &quot;,GroupResource.RESOURCE_STATUS_NORMAL, &quot;%&quot;+query+&quot;%&quot;, 1L, 2L,3L,4L,5L,6L);```
报错,excepting &quot;by&quot; found &quot;.&quot;
</code></pre>
<p>List<GroupResource> list4 = genericDao.findAll(" from GroupResource where resourceStatus = ? and name like ? and group.id = ? or group.id = ? or group.id = ? or group.id = ? or group.id = ? or group.id = ? ",GroupResource.RESOURCE_STATUS_NORMAL, "%"+query+"%", 1L, 2L,3L,4L,5L,6L);```</p>
<p>不报错,逻辑有问题</p>
<pre><code>List&lt;GroupResource&gt; list2 = genericDao.findAll(&quot; from GroupResource g where g.resourceStatus = ? and g.name like ? and (g.group.id = ? or g.group.id = ? or g.group.id = ? or g.group.id = ? or g.group.id = ? or g.group.id = ? ) &quot;, GroupResource.RESOURCE_STATUS_NORMAL, &quot;%&quot;+query+&quot;%&quot;, 1L, 2L,3L,4L,5L,6L);```
不报错,不符合框架
</code></pre>
<p>List<GroupResource> list3 = genericDao.findAll(" from GroupResource where resourceStatus = ? and name like ? and (<code>group</code>.id = ? or <code>group</code>.id = ? or <code>group</code>.id = ? or <code>group</code>.id = ? or <code>group</code>.id = ? or <code>group</code>.id = ? ) ",GroupResource.RESOURCE_STATUS_NORMAL, "%"+query+"%", 1L, 2L,3L,4L,5L,6L);</p>
<pre><code>报错,unexpected char: '`' </code></pre>
<p>List<GroupResource> list22 = genericDao.findAll(" from GroupResource where resourceStatus = ? and name like ? and (GroupResource.group.id = ? or GroupResource.group.id = ? or GroupResource. group.id = ? or GroupResource.group.id = ? or GroupResource.group.id = ? or GroupResource.group.id = ? ) ",GroupResource.RESOURCE_STATUS_NORMAL, "%"+query+"%", 1L, 2L,3L,4L,5L,6L);```
报错 Unable to resolve path [GroupResource.group], unexpected token [GroupResource]</p>
<p>解决办法,将GroupResource类中的group字段更改为agroup,并且修改ResourceSearchItemKey和相关dao,成功解决。生成的hql语句为</p>
<pre><code>
List&lt;GroupResource&gt; list3 = genericDao.findAll(&quot; from GroupResource where resourceStatus = ? and name like ? and (agroup.id = ? or agroup.id = ? or agroup.id = ? ora group.id = ? or agroup.id = ? or agroup.id = ? ) &quot;,GroupResource.RESOURCE_STATUS_NORMAL, &quot;%&quot;+query+&quot;%&quot;, 1L, 2L,3L,4L,5L,6L);```</code></pre>