Я попробовал две вещи сейчас.
Я написал, что NullableIDType extends UserType будет возвращать значение NULL, если набор данных содержит «0» или «-1». Как предложил ДанВинтон (upvote!). Но есть проблема. Я должен установить для UserType идентификатор указанной модели .
@Id
@GeneratedValue
@Column(name = "pkID", unique = true, nullable = false, type = NullableIDType)
public Integer getPkId() {
return this.pkId;
}
Что заставляет все ссылки на эту модель использовать «0» вместо «ноль».
Я забыл сказать, что большую часть времени ноль используется, когда это необходимо.
Так что это сработало бы, если бы база данных последовательно использовала «0» вместо «ноль».
Тогда есть @NotFound (action = NotFoundAction.IGNORE) w
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name="fkProjectBereichId",nullable = true)
@NotFound(action=NotFoundAction.IGNORE)
public Projectbereich getProjektbereich() {
return projektbereich;
}
Сначала это казалось плохим, но работающим решением, пока я не сохранил что-то, у которого была нулевая ссылка. Он был сохранен как «нулевой» в базе данных, а затем вызвал сбой другого кода, как и ожидалось «0».
Таким образом, чтобы использовать спящие соединения, я должен везде использовать одно и то же значение для нуля. Нет пути вокруг.
Это не совсем удовлетворительный ответ на мой вопрос. Но это так.