休止状態戦略に基づくエンティティ階層があり、application.ymlSINGLE_TABLE
に設定しました。ddl-auto=update
h2db を使用してテストを実行すると、「列に NULL は許可されていません」というメッセージが表示されます。
これは私のマッピングです:
==================
Shape
|--> Square
|--> Cube
==================
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "IS_SOLID", discriminatorType = DiscriminatorType.INTEGER)
@DiscriminatorValue(value = "-1")
public abstract class Shape{
...
}
@Entity
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorValue(value = "null")
public class Square extends Shape{
...
}
@Entity
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorValue(value = "1")
public class Cube extends Shape{
...
}
nullを discriminatorValue として 1 つのサブクラスに設定する必要があります。
ddl-auto=update
ディレクティブが形状テーブルを作成すると、識別子の列に設定されるためnot null
、「列に NULL は許可されていません」と表示されます。
ddl-auto を使用して識別子列を強制的に null 可能にする方法はありますか?