如何更改原始数据类型的默认值

How to change the default values of primitive data types

当数据库中的 long 字段为 null 时,eclipselink 在加载时为其提供默认值 0。我如何全局更改它,以便默认值变为 -1

所以我看了看EclipseLink的源码,发现这个其实很容易改,因为原语的默认值class可以通过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);

  }
}