2

休止状態戦略に基づくエンティティ階層があり、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 可能にする方法はありますか?

4

1 に答える 1