2017-02-03 5 views
1

私はテーブルとビューの両方を持つデータベースを持っています。私はJOOQを使ってデータと相互キャッチするJavaコードを生成します。Jooq pojoImplements:ビューとテーブル

私は、任意のテーブルに対して生成されたすべてのpojoが私のカスタムインターフェイスを実装したいと思っています。私はpojoImplementsを使ってそれを達成しました。

この動作はテーブルにのみ必要で、ビュー用に生成されたpojosがそのカスタムインターフェイスを実装しないようにします。

式がありますか?テーブルに他のルールを適用してビューにルールを適用する方法はありますか?

答えて

1

これを実行する唯一の方法は、オブジェクト名に一致する<expression>フラグを使用することです。

<tables> 
    <table> 
    <expression>EXPRESSION_MATCHING_ONLY_TABLES</expression> 
    <pojoImplements>...</pojoImplements> 
    </table> 
</tables> 

あなたは厳格な命名規則(例えばT_TABLEV_VIEWなど)を持っている場合は、そのようT_.*?として、あなたの正規表現に接頭辞を使用するか、または明示的にすべてのテーブル名と一致する必要があります。

programmatic code generator configurationを使用している場合は、クエリを使用してその正規表現を生成できます。 PostgreSQLでは、そのクエリは次のようになります。

SELECT string_agg(table_name, '|') 
FROM information_schema.tables 
WHERE table_schema = 'public' 
AND table_type = 'BASE TABLE' 
+0

ありがとう@Lukasさんの回答です。 –

関連する問題