TopLink + Derby(JavaDB)でdefault値が使えない?

こういう感じでdefault値を指定したとする。

create table TEST(
 id integer primary key,
 dt timestamp default CURRENT_TIMESTAMP);

マッピングがこんな風になる

@Entity
public class Test{
  @Id 
  @Column 
  Integer id;

  @Column
  @Temporal(TemporalType.TIMESTAMP)
  Date dt;
}

で、こんな感じで追加する

EntityManager em;
void hoge(){
  Test t = new Test();
  t.id = 1;
  t.dt = null;
  em.persist(t);
}

そうすると、dtフィールドはNULLになってしまう。
こんなSQLだとちゃんと日付が指定されるのでdefault指定自体に問題はない。

insert into Test(id) values(1);

なので、insertableをfalseにしてみる。

  @Column(insertable=false)
  @Temporal(TemporalType.TIMESTAMP)
  Date dt;

でもやっぱりdtフィールドはNULLになる。
このときこんなSQLが生成されてるようだ

insert into TEST(id, dt) values(1, NULL);

つまり、Derbyでは値にNULLを指定するとdefault値じゃなくNULLが格納される。
仕方がないので、Java側でデフォルト値を決める。

  @Column
  @Temporal(TemporalType.TIMESTAMP)
  Date dt = new Date();

NULLを指定してもdefault値を使ってくれないDerbyが悪いのか、insertable=falseのフィールドに対してNULLを指定するTopLinkが悪いのか。