Constraint atropelada?

Tenho um campo em minha tabela feito no HSQLDB:

telefone VARCHAR(8)

O JFormattedTextField que recebe o valor desse campo tem a seguinte máscara: ####-####

Uma coisa interessante que notei, é que quando nada é digitado nesse Field, o banco salva assim:

" - " // Aspas duplas só para dizer que se trata de uma String.

Ou seja, ele salvou 9 espaços, num campo que só permite 8! E nem deu nenhum aviso de erro. Mesmo digitando os 8 números o banco salva sem problema. O que está acontecendo?

Outra coisa: Esse campo pode ser NULL. Então como salvo no meu banco esse campo com valor NULL ao checar que o JFormattedTextField está vazio? Qual o teste tenho que fazer?

if(formattedTextField.getText().equals("")) ou
if(formattedTextField.getText().equals(null)) ou
if(formattedTextField.getText().equals(" - "))

Obrigado!