Когда поле long
содержит null
в базе данных, eclipselink присваивает значение по умолчанию 0
при загрузке. Как я могу изменить это глобально, так что значение по умолчанию становится -1
?Как изменить значения по умолчанию для примитивных типов данных
0
A
ответ
1
Итак, я посмотрел в исходном коде EclipseLink, и я узнал, что это действительно легко изменить, потому что значение по умолчанию для примитивного класса может быть установлено через api с помощью метода Session.setDefaultNullValue
. (Для этого необходимо использовать SessionCustomizer
.)
public class MySessionCustomizer implements SessionCustomizer {
@Override
public void customize(final Session session) {
DatasourceLogin login = session.getLogin();
login.setDefaultNullValue(long.class, -1L);
}
}