AssetEntryQuery は、className User に対して空の結果を返します。

問題

  • 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が空リストでなくなるはずです。
この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています