4

Liferay 6.2 の CustomSQLUtil クラスには問題がありませんでしたが、Liferay 7 のこのクラスの新しいバージョンでは問題が発生しました。実際、get メソッドは予期されたクエリではなく null を返します。

誰かがこれを再現しましたか?

Eclipse Mars での最後のテストの説明は次のとおりです。

  1. Liferay ワークスペースで、サービス モジュールの build.gradle に次の行を追加しました。

compileOnly グループ:「com.liferay」、名前:「com.liferay.portal.dao.orm.custom.sql」、バージョン:「1.0.5」

  1. Gradle の更新後、FooFinderImpl クラスで CustomSQLUtil クラスを使用して、適切なクエリを取得できるようになりました。

  2. このクエリは、Liferay 7 のドキュメントに記載されているように、src/custom-sql フォルダーにドロップされる default.xml ファイルに記述されています。

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

私は多くの場所(META-INF、リソース内..)で試しました.CustomSQLネイティブクラスを拡張して構成を取得しようとしましたが、CustomSQLUtilクラスのgetメソッドはSQLではなく常にnullを返します.クエリ。

PS : この新しい "CustomSQLUtil.get" メソッドが 2 つのパラメーターを受け取るようになったことに気付きました。クエリ ID に加えてクラスが要求されます。このクラス パラメータには、「Foo.class」の値を入れます。

行う設定があるかどうか誰かが知っていますか? クラスパスまたはバンドルコンテキストを構成する必要がありますか?

4

2 に答える 2

5

それを機能させるには 、このように CustomSQLUtil を使用して追加custom-sql/default.xmlしますfoo-service/src/main/resourcesFooFinderImpl

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 に答える