0
long
フィールドがデータベースにnull
である場合、eclipselinkは読み込み時にデフォルト値の0
を返します。グローバルに変更するにはどうすればいいですか?デフォルト値は-1
になりますか?プリミティブデータ型のデフォルト値を変更する方法
long
フィールドがデータベースにnull
である場合、eclipselinkは読み込み時にデフォルト値の0
を返します。グローバルに変更するにはどうすればいいですか?デフォルト値は-1
になりますか?プリミティブデータ型のデフォルト値を変更する方法
私はEclipseLinkのソースコードを調べました。プリミティブクラスのデフォルト値は、Session.setDefaultNullValue
というAPIを使用して設定できるため、実際には変更が容易であることがわかりました。 (これにはSessionCustomizer
を使用する必要があります)
public class MySessionCustomizer implements SessionCustomizer {
@Override
public void customize(final Session session) {
DatasourceLogin login = session.getLogin();
login.setDefaultNullValue(long.class, -1L);
}
}