JPA 2:将@NamedNativeQuery更改为CriteriaBuilder等效项
||
是否可以更改此@NamedQuery查询:
SELECT @rownum:=@rownum+1 \'no\', m.title, m.author, REPLACE(SUBSTRING_INDEX(m.content, \' \', 20), \'<br>\', \' \'), m.viewed, m.hashid FROM book m, (SELECT @rownum:=0) r WHERE m.lang = ?1 AND m.title like CONCAT(\'%\',?2,\'%\') ORDER BY m.title asc
等同于CriteriaBuilder。或不?...
没有找到相关结果
已邀请:
1 个回复
捅瓶啡
由于结果返回到列表中,因此您可以简单地在\'no \'字段中使用列表中的索引,并且可以在Book上编写方法getContentSnippet()来进行子字符串替换。 如果您确实想在数据库中进行字符串处理,也许是为了减少传输的文本量,那么您可以编写一个元组查询,以检索书和摘录。注意,我仍然会检索整本书,而不是单个领域,因为这使后续编程变得更加容易。如果要避免传输全部内容,请在Book类中将其标记为延迟加载。查询如下:
我正在使用子字符串来构建代码段,因为我正在使用PostgreSQL,并且它没有SUBSTRING_INDEX函数的等效项。您可以使用CriteriaBuilder.function与MySQL一起调用它。我仍然没有在查询中进行编号或替换,因为我仍然认为最好在代码中完成。
我确实认为您可以更轻松地使用JPQL!