Campo nulo?

boa tarde

abaixo classe ond tenho id_vo_aditivo podendo ser nulo ou nao.

@ManyToOne @JoinColumn(name="ID_VO_MATERIAL_ADITIVO", nullable=true) private VoMaterial voMaterialAditivo;

depois tenho metodo no me MB que esta dando erro campo nulo.mas coloquei varios ifs e nao esta dando certo

[code]public void alterar() {

	try {
		if ((this.getEntidade().getVoMaterial() == null)||(this.getEntidade().getVoMaterial().getId().equals(""))||this.getEntidade().getVoMaterial().getId().startsWith(" ")) {
			this.getEntidade().setVoMaterial(new VoMaterial());
			this.getEntidade().getVoMaterial().setId(null);
		}
		if ((this.getEntidade().getVoMaterialAditivo() == null)||(this.getEntidade().getVoMaterialAditivo().getId().equals("")||(this.getEntidade().getVoMaterialAditivo().getId().startsWith(" ")))) {
			this.getEntidade().setVoMaterialAditivo(new VoMaterial());
			this.getEntidade().getVoMaterialAditivo().setId(null);
		}		
		 ejb.alterar(this.getEntidade(), getUnidade());
	} catch (Exception e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
		Mensagem.alertaInformacao("msgGenInformeGrupoValido");
		//Mensagem.alertaInformacao("msgGenAlteradoComSucesso");		
		
	}
	limpar();
	Mensagem.alertaInformacao("msgGenAlteradoComSucesso");
	populaLista();
}[/code]

Como está no banco a configuração?

bom dia

campo tem foreign key e aceita gravar nulo na tabela