Doma-Genが生成するエンティティクラスのプロパティの型を固定化するには?

上と似た感じで、2つクラスを作る必要があります。いずれもdoma-gen-x.x.x.jarに依存。

プロパティクラス名のリゾルバクラスを拡張
public class MyEntityPropertyClassNameResolver extends
        EntityPropertyClassNameResolver {

    public MyEntityPropertyClassNameResolver(File propertyFile) {
        super(propertyFile);
    }

    @Override
    public String resolve(EntityDesc entityDesc, String propertyName,
            String defaultPropertyClassName) {
        // 数値型をLongに統一
        if (Byte.class.getName().equals(defaultPropertyClassName)
                || Short.class.getName().equals(defaultPropertyClassName)
                || Integer.class.getName().equals(defaultPropertyClassName)
                || Long.class.getName().equals(defaultPropertyClassName)) {
            return Long.class.getName();
        }
        return super
                .resolve(entityDesc, propertyName, defaultPropertyClassName);
    }
}
グローバルファクトリクラスを拡張(上のクラスのインスタンスを返します)
public class MyGlobalFactory extends GlobalFactory {

    @Override
    public EntityPropertyClassNameResolver createEntityPropertyClassNameResolver(
            File propertyFile) {
        return new MyEntityPropertyClassNameResolver(propertyFile);
    }
}
ビルドファイルのgenタスクの定義。
<gen
	dialectName="${dialectName}"
	driverClassName="${driverClassName}"
	url="${url}"
	user="${user}"
	password="${password}"
	globalFactoryClassName="example.MyGlobalFactory">
	...
</gen>

globalFactoryClassName属性にGlobalFactoryを継承したクラス名を指定します。