問題
- AssetEntryQueryは、classNameを "User "に設定すると、常に空の結果を返すことがわかりました。 これは意図した動作なのでしょうか?
- 複製するためには、"xxxxx "を有効なユーザーIDに変更し、以下のgroovyスクリプトを実行します。 userAssetEntryの値は設定されますが、userAssetEntriesは空のリストとなることに注意してください。
import com.liferay.asset.kernel.service.AssetEntryLocalServiceUtil import com.liferay.asset.kernel.service.persistence.AssetEntryQuery import com.liferay.portal.kernel.model.User import com.liferay.portal.kernel.service.UserLocalServiceUtil userId = xxxxx user = UserLocalServiceUtil.getUser(userId) userAssetEntry = AssetEntryLocalServiceUtil.getEntry(User.class.getCanonicalName(), user.getPrimaryKey()) AssetEntryQuery assetEntryQuery = new AssetEntryQuery() assetEntryQuery.setClassName(User.class.getCanonicalName()) userAssetEntries = AssetEntryLocalServiceUtil.getEntries(assetEntryQuery) out.println("userAssetEntry: " + userAssetEntry) out.println("userAssetEntries: " + userAssetEntries)
Environment
- DXP 7.3
解決策
- ユーザー資産はデフォルトでは表示されないので、AssetEntryQueryで照会したい場合は、AssetEntryLocalServiceUtil.getEntriesを実行する前に、スクリプトに
assetEntryQuery.setVisible(false)
を追加する必要がある。 これを追加すると、userAssetEntriesが空リストでなくなるはずです。
会員限定記事
Liferay エンタープライズ サブスクリプションをお持ちのお客様は1500件を超えるベストプラクティス、トラブルシューティング、その他のソリューション記事を閲覧できます。ログインすると、記事全体をお読みいただけます。
ログイン