Doma-GenのGenタスクでVIEWからエンティティクラスを作るには?

いまだと設定だけでは無理で、2つクラスを作る必要があります。いずれもdoma-gen-x.x.x.jarに依存。設定でViewを含めるかどうか指定できるようにしてもいいですね。

テーブルのメタデータを読み取るクラスを拡張
public class MyTableMetaReader extends TableMetaReader {

    public MyTableMetaReader(GenDialect dialect, DataSource dataSource,
            String schemaName, String tableNamePattern,
            String ignoredTableNamePattern) {
        super(dialect, dataSource, schemaName, tableNamePattern,
                ignoredTableNamePattern);
    }

    @Override
    protected List<TableMeta> getDbTableMetas(DatabaseMetaData metaData,
            String schemaName) throws SQLException {
        List<TableMeta> results = new ArrayList<TableMeta>();
        ResultSet rs = metaData.getTables(null, schemaName, null, new String[] {
                "TABLE", "VIEW" });
        try {
            while (rs.next()) {
                TableMeta dbTableMeta = new TableMeta();
                dbTableMeta.setCatalogName(rs.getString("TABLE_CAT"));
                dbTableMeta.setSchemaName(rs.getString("TABLE_SCHEM"));
                dbTableMeta.setName(rs.getString("TABLE_NAME"));
                dbTableMeta.setComment(rs.getString("REMARKS"));
                if (isTargetTable(dbTableMeta)) {
                    results.add(dbTableMeta);
                }
            }
            return results;
        } finally {
            JdbcUtil.close(rs);
        }
    }
}
グローバルファクトリクラスを拡張(上のクラスのインスタンスを返します)
public class MyGlobalFactory extends GlobalFactory {

    @Override
    public TableMetaReader createTableMetaReader(GenDialect dialect,
            DataSource dataSource, String schemaName, String tableNamePattern,
            String ignoredTableNamePattern) {
        return new MyTableMetaReader(dialect, dataSource, schemaName,
                tableNamePattern, ignoredTableNamePattern);
    }
}
ビルドファイルのgenタスクの定義。
<gen
	dialectName="${dialectName}"
	driverClassName="${driverClassName}"
	url="${url}"
	user="${user}"
	password="${password}"
	globalFactoryClassName="example.MyGlobalFactory">
	...
</gen>

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