エンティティの定義
エンティティはサービスの最も重要な部分です。 エンティティは、Javaのモデルオブジェクトとデータベースフィールドおよびテーブルの間のマップを表します。 Service Builderは、Javaモデルを定義したエンティティに自動的にマップし、Javaオブジェクトを永続化する機能を提供します。 モデル、永続性、およびサービス コードの生成にある Y7G4 サンプル プロジェクトを検討してください。 エンティティの概要は次のとおりです。
- 名前:
Y7G4Entry - ローカルサービス: はい
- リモートサービス: いいえ
エンティティを定義する方法は次のとおりです。
<entity local-service="true" name="Y7G4Entry" remote-service="false">
</entity>
エンティティのデータベーステーブル名には、名前空間のプレフィックスが付いたエンティティ名が含まれます。 Y7G4の例では、Y7G4_Y7G4Entryという名前のデータベーステーブルが1つ作成されます。
ローカル サービス ( local-service 属性) を true に設定すると、エンティティのサービスのローカル インターフェイスが生成されます。 ローカルサービスは、それらがデプロイされているLiferayサーバーからのみ呼び出すことができます。
リモート サービス ( remote-service 属性) を true に設定すると、サービスに対して JSON ベースのリモート インターフェイスが生成されます。 これらは REST サービスではないので、 REST ビルダーを使用する必要があります。 エンティティのローカルサービスをtrueに設定し、リモートサービスをfalseに設定することで、リモートサービスを生成せずに完全に機能するアプリケーションを構築できます。 ただし、アプリケーションのサービスへのリモートアクセスを有効にする場合は、ローカルサービスとリモートサービスの両方をtrueに設定します。
JPA などの他のフレームワークを使用して構築されたエンティティ用の既存のデータ アクセス オブジェクト (DAO) サービスがある場合は、ローカル サービスを false に設定し、リモート サービスを true に設定して、リモート -Impl クラスのメソッドが既存の DAO のメソッドを呼び出すことができるようにすることができます。 これにより、Liferayの権限チェックシステムとの統合が容易になり、Service Builderによって生成されたWebサービスAPIにアクセスできるようになります。 これは、Liferayの非常に便利で強力な、よく使用される機能です。