5.3. Service、Entity作成¶
本項では、 Service、Entityの作成方法を説明します。
5.3.1. テーブル定義¶
本項では次の様な定義のテーブルを使用します。
「k99m_tutorial」
No. 論理名 物理名 型 長さ 必須 PK 1 会社コード company_cd 文字列 100 Y ○ 2 チュートリアルコード tutorial_cd 文字列 100 Y ○ 5 チュートリアル名称 tutorial_name 文字列 1000 Y 4 ロケールID locale_id 文字列 50 Y ○ 3 期間コード term_cd 文字列 50 Y ○ 6 開始日 start_date タイムスタンプ Y 7 終了日 end_date タイムスタンプ Y 8 削除フラグ delete_flag 文字列 1 Y 9 予備項目A extension_a 文字列 1000 10 予備項目B extension_b 文字列 1000 11 予備項目C extension_c 文字列 1000 12 予備項目D extension_d 文字列 1000 13 予備項目E extension_e 文字列 1000 14 予備項目F extension_f 文字列 1000 15 予備項目G extension_g 文字列 1000 16 予備項目H extension_h 文字列 1000 17 予備項目I extension_i 文字列 1000 18 予備項目J extension_j 文字列 1000 19 登録日時 entry_ts タイムスタンプ Y 20 登録者コード entry_user_cd 文字列 100 Y 21 更新カウンタ renew_cnt 数値 18,0 Y 22 更新日時 renew_ts タイムスタンプ Y 23 更新者コード renew_user_cd 文字列 100 Y コラム
予備項目A~J拡張用の項目として予備項目を用意することでカスタマイズ性が向上します。intra-mart Accel Kaiden!の各テーブルでは、カスタマイズを考慮し予備項目をあらかじめ定義しています。注意
登録日時、登録者コード、更新カウンタ、更新日時、更新者コードintra-mart Accel Kaiden!の各テーブルで共通的に定義している項目です。本カラムは必ず定義してください。
5.3.2. Entityの作成¶
Entityを作成します。jp.co.slcs.kaiden.v2.base.foundation.model.entity.GenerateEntityを継承してください。java.io.Serializable.Serializableを実装してください。Mirage-SQLの実装方法に従い、各カラムの定義を実装してください。コラム
予備項目A~J、登録日時、登録者コード、更新カウンタ、更新日時、更新者コード上記カラムは、親クラスのGenerateEntity.javaで定義しているため各Entityでの定義は不要です。コラム
K99mTutorial.javaおよび標準のソースではフィールド名の定数を定義しています。定数の定義は任意のため、必要に応じて実装してください。Pathsrc/main/generated/jp/co/slcs/kaiden/v2/tutorial/foundation/model/entity/K99mTutorial.javapackage jp.co.slcs.kaiden.v2.tutorial.foundation.model.entity; import java.io.Serializable; import java.sql.Timestamp; import com.miragesql.miragesql.annotation.Column; import com.miragesql.miragesql.annotation.PrimaryKey; import com.miragesql.miragesql.annotation.PrimaryKey.GenerationType; import com.miragesql.miragesql.annotation.Table; import jp.co.slcs.kaiden.v2.base.foundation.model.entity.GenerateEntity; /** * チュートリアルマスタ. * * @author Sumitomo Life Information Systems Co.,Ltd. */ @Table(name = "k99m_tutorial") public final class K99mTutorial extends GenerateEntity implements Serializable { /** シリアルバージョンUID. */ private static final long serialVersionUID = 1L; /** フィールド名[会社コード]. */ public static final String COMPANY_CD = "companyCd"; /** フィールド名[チュートリアルコード]. */ public static final String TUTORIAL_CD = "tutorialCd"; /** フィールド名[チュートリアル名称]. */ public static final String TUTORIAL_NAME = "tutorialName"; /** フィールド名[ロケールid]. */ public static final String LOCALE_ID = "localeId"; /** フィールド名[期間コード]. */ public static final String TERM_CD = "termCd"; /** フィールド名[開始日]. */ public static final String START_DATE = "startDate"; /** フィールド名[終了日]. */ public static final String END_DATE = "endDate"; /** フィールド名[削除フラグ]. */ public static final String DELETE_FLAG = "deleteFlag"; /** 会社コード. */ @PrimaryKey(generationType = GenerationType.APPLICATION) @Column(name = "company_cd") public String companyCd; /** チュートリアルコード. */ @PrimaryKey(generationType = GenerationType.APPLICATION) @Column(name = "tutorial_cd") public String tutorialCd; /** チュートリアル名称. */ @Column(name = "tutorial_name") public String tutorialName; /** ロケールid. */ @PrimaryKey(generationType = GenerationType.APPLICATION) @Column(name = "locale_id") public String localeId; /** 期間コード. */ @PrimaryKey(generationType = GenerationType.APPLICATION) @Column(name = "term_cd") public String termCd; /** 開始日. */ @Column(name = "start_date") public Timestamp startDate; /** 終了日. */ @Column(name = "end_date") public Timestamp endDate; /** 削除フラグ. */ @Column(name = "delete_flag") public String deleteFlag; }
5.3.3. Serviceの作成¶
Serviceを作成します。jp.co.slcs.kaiden.v2.base.foundation.model.service.GenerateService<Entity>を継承してください。空実装で構いません。Pathsrc/main/generated/jp/co/slcs/kaiden/v2/tutorial/foundation/model/service/K99mTutorialService.javapackage jp.co.slcs.kaiden.v2.tutorial.foundation.model.service; import org.springframework.beans.factory.config.ConfigurableBeanFactory; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import jp.co.slcs.kaiden.v2.base.foundation.model.service.GenerateService; import jp.co.slcs.kaiden.v2.tutorial.foundation.model.entity.K99mTutorial; /** * {@link K99mTutorial}のサービスクラス. * * @author Sumitomo Life Information Systems Co.,Ltd. */ @Component @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) public final class K99mTutorialService extends GenerateService<K99mTutorial> { // }