读思码

日常记录


hql语句查询报错

<p>hql语句查询报错,</p> <pre><code>List&amp;lt;GroupResource&amp;gt; list3 = genericDao.findAll(&amp;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 = ? ) &amp;quot;,GroupResource.RESOURCE_STATUS_NORMAL, &amp;quot;%&amp;quot;+query+&amp;quot;%&amp;quot;, 1L, 2L,3L,4L,5L,6L);``` 报错,excepting &amp;quot;by&amp;quot; found &amp;quot;.&amp;quot; </code></pre> <p>List&lt;GroupResource&gt; list4 = 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);```</p> <p>不报错,逻辑有问题</p> <pre><code>List&amp;lt;GroupResource&amp;gt; list2 = genericDao.findAll(&amp;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 = ? ) &amp;quot;, GroupResource.RESOURCE_STATUS_NORMAL, &amp;quot;%&amp;quot;+query+&amp;quot;%&amp;quot;, 1L, 2L,3L,4L,5L,6L);``` 不报错,不符合框架 </code></pre> <p>List&lt;GroupResource&gt; list3 = genericDao.findAll(&quot; 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 = ? ) &quot;,GroupResource.RESOURCE_STATUS_NORMAL, &quot;%&quot;+query+&quot;%&quot;, 1L, 2L,3L,4L,5L,6L);</p> <pre><code>报错,unexpected char: '`' </code></pre> <p>List&lt;GroupResource&gt; list22 = genericDao.findAll(&quot; 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 = ? ) &quot;,GroupResource.RESOURCE_STATUS_NORMAL, &quot;%&quot;+query+&quot;%&quot;, 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&amp;lt;GroupResource&amp;gt; list3 = genericDao.findAll(&amp;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 = ? ) &amp;quot;,GroupResource.RESOURCE_STATUS_NORMAL, &amp;quot;%&amp;quot;+query+&amp;quot;%&amp;quot;, 1L, 2L,3L,4L,5L,6L);```</code></pre>

页面列表

ITEM_HTML