legacy-knowledge-base
公開されました Sep. 10, 2025

サービスビルダーは、trash-enabled="true "をプロパティとして追加した場合、モジュールのビルドに失敗する。

written-by

Marcos da Silva Xavier

How To articles are not official guidelines or officially supported documentation. They are community-contributed content and may not always reflect the latest updates to Liferay DXP. We welcome your feedback to improve How To articles!

While we make every effort to ensure this Knowledge Base is accurate, it may not always reflect the most recent updates or official guidelines.We appreciate your understanding and encourage you to reach out with any feedback or concerns.

legacy-article

learn-legacy-article-disclaimer-text

問題

  • サービスビルダーのエンティティに trash-enabled="true" 属性が定義されている場合、対応する抽象メソッドが Liferay dxp 7.4.13.u18 & 以前のバンドル用のモデル & ラッパークラス(FooModel、FooModelImpl、FooWrapper)用に生成されました。 しかし、Liferay dxp 7.4.13.u49のサービスビルダーはbuildServiceコマンドでこれらのメソッドを生成しません。

Environment

  • DXP 7.4 U49+

解決策

  • この問題は通常、サービスの構築に最新バージョンのServiceBuilderを誤って使用したために発生し、U49やそれ以前のバージョンと互換性がない可能性がある。 プロジェクトは、ServiceBuilderのバージョン1.0.439を使用するように設定する必要があります。
  • 詳しく説明すると、U52以前はTrashHandlerインターフェイスがあり、そこにはゴミ関連のメソッドがいくつも含まれていた。 ServiceBuilderは、"trash-enabled "がtrueに設定されている場合、このインターフェイスを拡張/実装したModelクラスを生成し、これらのメソッドの実装をModelクラスに含めました。

    U52 (LPS-152611) では、これらのメソッドを TrashHandler インターフェースから削除し、TrashHelper インターフェースの同名のメソッドを使用するようにしました。 また、ServiceBuilderを更新し、Modelクラスにこれらのメソッドを実装しないようにしました。
  • U49では、TrashHandlerインターフェイスはまだこれらのメソッドを含んでいる。 しかし、ServiceBuilderの最新バージョンが使用されている場合、生成されたModelクラスはこれらのメソッドを実装していません。 そのため、"FooWrapper is not abstract and does not override abstract method isInTrashImplicitly() in TrashedModel" のようなコンパイル・エラーが発生します。

did-this-article-resolve-your-issue

legacy-knowledge-base