About

ドキュメント

Javadoc

モジュール

プロジェクト文書

Built by Maven

説明

概要

サービスクラスを生成します。 サービスクラスとは、エンティティを利用するビジネスロジックを持つクラスで、エンティティクラスにつき1つ生成されます。 生成されるサービスクラスは次のようなコードになります。 これはエンティティクラスAddressに対するサービスクラスです。

/**
 * {@link Address}のサービスクラスです。
 * 
 * @author S2JDBC-Gen
 */
public class AddressService extends AbstractService<Address> {

    /**
     * 識別子でエンティティを検索します。
     * 
     * @param id
     *            識別子
     * @return エンティティ
     */
    public Address findById(Integer id) {
        return select().id(id).getSingleResult();
    }

    /**
     * 識別子の昇順ですべてのエンティティを検索します。
     * 
     * @return エンティティのリスト
     */
    public List<Address> findAllOrderById() {
        return select().orderBy(asc(id())).getResultList();
    }
    
}

生成後は、任意のメソッドを追加し自由に利用できます。

パラメータ

トップレベルのパラメータ

属性 説明 デフォルト値 必須
classpathDir エンティティクラスを含むクラスパスのディレクトリです。このディレクトリはタスクの実行時のクラスパスに含まれている必要があります。 - YES
rootPackageName ルートパッケージ名です。 "" NO
entityPackageName エンティティクラスのパッケージ名です。エンティティクラスは、rootPackageNameとこの値をピリオドで連結したパッケージに配置されているとみなされます。 "entity" NO
entityClassNamePattern このタスクで対象とするエンティティクラス名の正規表現です。 ".*" NO
ignoreEntityClassNamePattern このタスクで対象としないエンティティクラス名の正規表現です。 "" NO
servicePackageName サービスクラスのパッケージ名です。サービスクラスは、rootPackageNameとこの値をピリオドで連結したパッケージに配置されます。 "service" NO
serviceClassNameSuffix サービスクラス名のサフィックスです。 "Service" NO
abstractServiceTemplateFileName 抽象サービスクラスのテンプレートファイル名です。 "java/abstract-service.ftl" NO
serviceTemplateFileName サービスクラスのテンプレートファイル名です。 "java/service.ftl" NO
useNames "true"の場合、名前クラスを使用します。 "true" NO
namesClassNameSuffix 名前クラス名のサフィックスです。 "Names" NO
namesPackageName 名前クラスのパッケージ名です。名前インタフェースは、rootPackageNameとこの値をピリオドで連結したパッケージに配置されているとみなされます。 "entity" NO
templateFileEncoding テンプレートファイルのエンコーディングです。 "UTF-8" NO
templateFilePrimaryDir テンプレートファイルを検索する際の優先ディレクトリです。 - NO
javaFileDestDir Javaファイルの出力先ディレクトリです。 "src/main/java" NO
javaFileEncoding Javaファイルのエンコーディングです。 "UTF-8" NO
overwrite "true"の場合、サービスクラスのJavaファイルを上書きします。 "false" NO
overwriteAbstractService "true"の場合、抽象サービスクラスのJavaファイルを上書きします。 "false" NO
configPath JdbcManagerのコンポーネント定義を含む設定ファイルです。 "s2jdbc.dicon" NO
env 環境名です。 "ut" NO
jdbcManagerName JdbcManagerのコンポーネント名です。接続先のデータベースはJdbcManagerのコンポーネント名によって決まります。 "jdbcManager" NO
factoryClassName S2JDBC-Genの公開されたインタフェースの実装を作成するファクトリのクラス名です。S2JDBC-Genをカスタマイズする場合に独自のファクトリクラスを指定できます。ここに指定するクラスはorg.seasar.extension.jdbc.gen.internal.factory.Factoryインタフェースを実装している必要があります。 "org.seasar.extension.jdbc.gen
.internal.factory.FactoryImpl"
NO
commandInvokerClassName S2JDBC-Genのコマンドを呼び出すクラスの名前です。コマンドの呼び出し前後で任意の処理を実行したい場合に指定します。ここに指定するクラスはorg.seasar.extension.jdbc.gen.command.CommandInvokerインタフェースを実装している必要があります。 "org.seasar.extension.jdbc.gen
.internal.command.CommandInvokerImpl"
NO
classpath このタスクを実行する際のクラスパスです。 - classpathrefが指定されていない場合YES
classpathref このタスクを実行する際のクラスパスの参照です。 - classpathが指定されていない場合YES

ネストした要素として指定されるパラメータ

jvmArg

このタスクの大部分の処理は別VMで行われます。VMに引数を渡す場合は<jvmarg>要素を使用します。 これはAntのJavaタスクで使用できる<jvmarg>と同じです。 使用可能な属性やネストした要素についてはAntのドキュメントを参照してください。

サービスクラスのパッケージを指定する

サービスクラスのデフォルトのパッケージ名は"service"ですが、servicePackageName属性に任意のパッケージ名を指定できます。 次の例では"myservice"を指定しています。

<gen-service
    rootPackageName="examples"
    servicePackageName="myservice"
    classpathRef="classpath"
/>