Может ли отношение @ManyToOne JPA быть нулевым?



У меня есть таблица, которая имеет внешний ключ другой таблицы (много к одной связи), но я хочу, чтобы она была nullable.



Что-то вроде этого:



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 и говорит, что подтип не может быть нулевым.
Есть ли способ, чтобы получить ManyToOne принимать значение null?

599   2  

2 ответов:

Вам нужно установить:

@ManyToOne(optional = true, fetch = FetchType.LAZY)

Не optional=false.

@Column(nullable=true) - это указание генератору DDL включить нулевой тип столбца SQL.

Подробнее о необязательной vs nullable проверке это так Ответ.

Попробуйте это:

@JoinColumn(name = "subType_id", nullable = true)

Comments

    Ничего не найдено.