Михаил の素晴らしい回答に続いて、2 つの別々のことがうまくいきました。
- ベース ドメイン クラスを src に配置する
基本クラスとサブクラスの両方の制約が適用されたため、これは私にとって最もうまくいきました。私のユースケースでは、サブクラスに null 列がないことが重要でした。ただし、サブクラスのマッピング ブロックのみが使用されているようです。
- 使用する
tablePerConcreteClass true
ここでの利点は、インデックスを BaseDomain クラスで宣言し、各サブクラス テーブルに表示できることです。つまり、基本クラスとサブクラスの両方のマッピング ブロックが使用されます。基本クラスの制約のみが使用されているようです。
abstract class BaseDomain {
static mapping = {
tablePerHierarchy false // avoid creating the base_domain table
tablePerConcreteClass true
id generator: 'increment' // https://jira.grails.org/browse/GRAILS-10849
someColumnInBaseDomain index: true // index this column in each subclass table
}
}