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