別のテーブル(1対多の関係)の外部キーを持つテーブルがありますが、null可能にしたいです。
このようなもの:
_public class SubType() {
@Id
@GeneratedValue(generator = "system-uuid")
@GenericGenerator(name = "system-uuid", strategy = "uuid")
private String id;
}
public class TopUp {
@Column(nullable = true)
@ManyToOne(optional = false, fetch = FetchType.LAZY)
private SubType subType;
}
_
しかし、@Column(nullable = true)
はNullPointerException
をスローし、サブタイプをnullにすることはできないと言います。 ManyToOneがnullを受け入れるようにする方法はありますか?
以下を設定する必要があります。
_@ManyToOne(optional = true, fetch = FetchType.LAZY)
_
_optional=false
_ではありません。
@Column(nullable=true)
は、DDL生成ツールにNULL
SQL列型制約を含めるように指示します。
optional
とnullable
の詳細については、 このStackOverflowの回答 をご覧ください。
これを試して:
@JoinColumn(name = "subType_id", nullable = true)
これだけが私を助けました:
public class TopUp {
@ManyToOne
@JoinColumn(columnDefinition="integer", name="subtype_id")
private SubType subType;
}
columnDefinitionはソリューションです!