2016-12-07 11 views
4

Liferay 6.2のCustomSQLUtilクラスに問題はありませんでしたが、Liferay 7ではこのクラスの新しいバージョンで問題が発生しました。予想されるクエリCustomSQLUtilはLiferay 7でクエリ取得中にnull値を取得します。

誰かがこれを再現していますか?ここで

は、Eclipse火星での私の最後のテストのための説明です:私のLiferayのワークスペースで

  1. 、私はサービスモジュールのbuild.gradle

compileOnlyグループに次の行を追加しました: "com.liferay"、名前: "com.liferay.portal.dao.orm.custom.sql"、バージョン: "1.0.5"

  1. グラデーションをリフレッシュした後、私はCustomSQLUtilクラスを私のFooFinderImplクラスを使用して適切なクエリを取得します。私がしました

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

  • このクエリは、Liferayの7のマニュアルにmentionnedとしてのsrc /カスタム-SQLフォルダにドロップされたdefault.xmlのファイルに書き込まれています多くの場所(META-INF、ressources ..)で試してみましたが、CustomSQLネイティブクラスを拡張して設定を取得しようとしましたが、CustomSQLUtilクラスのgetメソッドはSQLクエリの代わりに常にnullを返します。

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

    設定が必要な場合は誰かが知っていますか?クラスパスまたはbundlecontextを設定する必要はありますか?

  • 答えて

    5

    、その後は、これは私はそれがCustomSQLUtilクラスなしで動作しますが、私は希望同意githubのhttps://github.com/bruinen/liferay-services-example

    +0

    それは動作します!私のエラーは、FooFinderImpl.classの代わりにFoo.class引数を入れることでした。 ありがとう、ロミオ! – Vincent

    0

    CustomSQLUtilの使用を避けてください。代わりに のようなファインダーメソッド内で直接クエリを使用してみてください。String sql = "select * from Foo_Foo where name =?" これは助けてくれるでしょう! FooFinderImplで、それはfoo-service/src/main/resourcescustom-sql/default.xmlを追加動作させるために

    +0

    上の例で、このよう

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

    CustomSQLUtilを使用しますLiferayのドキュメントに紹介されているような別のXMLファイルにSQLクエリを保存するのが好きです。 – Vincent

    関連する問題