4

虽然我对 Liferay 6.2 中的 CustomSQLUtil 类没有任何问题,但我在 Liferay 7 中遇到了这个类的新版本的问题。确实,get 方法返回 null 而不是预期的查询。

有人复制过这个吗?

这是我在 Eclipse Mars 中最后一次测试的描述:

  1. 在我的 Liferay 工作区中,我在 service 模块的 build.gradle 中添加了以下行

compileOnly 组:“com.liferay”,名称:“com.liferay.portal.dao.orm.custom.sql”,版本:“1.0.5”

  1. gradle 刷新后,我可以使用 FooFinderImpl 类中的 CustomSQLUtil 类来检索适当的查询。

  2. 此查询已写入 default.xml 文件中,该文件已放入 Liferay 7 文档中提到的 src/custom-sql 文件夹中:

https://dev.liferay.com/develop/tutorials/-/knowledge_base/7-0/custom-sql

我尝试了很多地方(在 META-INF 中,在 ressources 中..),我什至尝试扩展 CustomSQL 本机类来获取配置,但是 CustomSQLUtil 类的 get 方法总是返回 null 而不是 sql询问。

PS:我注意到这个新的“CustomSQLUtil.get”方法现在需要 2 个参数,除了查询 ID 之外还请求一个类。在这个类参数中,我输入了“Foo.class”值。

有人知道是否有配置要做吗?是否必须配置类路径或捆绑上下文?

4

2 回答 2

5

为了使其正常工作,custom-sql/default.xml以这种方式添加foo-service/src/main/resources 然后FooFinderImpl 使用 CustomSQLUtil

CustomSQLUtil.get(getClass(),CONSTANT_QUERY_ID); //id of query in default.xml

这是 github 上的一个示例https://github.com/bruinen/liferay-services-example

于 2016-12-09T10:31:10.157 回答
-1

尽量避免使用 CustomSQLUtil。而是尝试直接在 finder 方法中使用查询,例如 String sql="select * from Foo_Foo where name=?" 希望有帮助!!

于 2016-12-08T11:00:05.037 回答