AssetEntryQuery は、className User に対して空の結果を返します。
written-by
Peter Schwarcz
knowledge-article-header-disclaimer-how-to
knowledge-article-header-disclaimer
legacy-article
learn-legacy-article-disclaimer-text
問題
- 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)
解決策
- ユーザー資産はデフォルトでは表示されないので、AssetEntryQueryで照会したい場合は、AssetEntryLocalServiceUtil.getEntriesを実行する前に、スクリプトに
assetEntryQuery.setVisible(false)
を追加する必要がある。 これを追加すると、userAssetEntriesが空リストでなくなるはずです。
did-this-article-resolve-your-issue