[resolvido] blob Hibernate.createBlob hibernate.PropertyValueException not-null property

Pessoal

Estou com bastante dificuldade para salvar um byte[] em um Blob para o banco.
Toda vez que salvo uma entidade cujo atributo do tipo Blob eu já setei ; dá um erro como se o atributo não houvesse sido atribuído.[quote]2010-04-05 18:02:47 [main] DEBUG com.altec.bsbr.test.gac.dao.BlobTest {} blobImagem.length(): 5
2010-04-05 18:02:47 [main] ERROR c.a.b.app.gac.dao.impl.AbstractDAO {} org.hibernate.PropertyValueException: not-null property references a null or transient value: com.altec.bsbr.app.gac.entity.ArquivoImagemRemetida.binariosImagem[/quote]
Meu código de teste reduzido é este:[code]public class BlobTest extends AbstractDAOTest {

private static final Logger LOGGER = LoggerFactory.getLogger(BlobTest.class);

public BlobTest() {
    this.setDefaultRollback(false);
}

@Autowired
private ArquivoImagemRemetidaDAO arquivoImagemRemetidaDAO;


@Test
public void testBlob() throws Exception {

    byte[] bufImagem = "abcde".getBytes();

    ArquivoImagemRemetida arquivoImagemRemetida = new ArquivoImagemRemetida();
    Blob blobImagem = Hibernate.createBlob(bufImagem);
    LOGGER.debug("blobImagem.toString(): " + blobImagem.toString());
    LOGGER.debug("blobImagem.length(): " + blobImagem.length());
    arquivoImagemRemetida.setBinariosImagem(blobImagem);
    arquivoImagemRemetidaDAO.incluir(arquivoImagemRemetida);
}

}[/code]

[size=20]No meu código de teste original; bufImagem é o byte[] realmente referente à uma imagem ; porem o erro é o mesmo. Então para facilitar removí esse cenário e criei um mais simples.[/size]

[color=red]O que deve ser feito para isto funcionar ? Não tenho nenhuma suspeita[/color] :frowning:
.

keywords: blob Hibernate.createBlob “org.hibernate.PropertyValueException:not-null property references a null”

[size=21][color=blue]PROBLEMA RESOLVIDO[/color][/size]

Depois de me estressar tentando resolver com tipo Blob; passei a utilizar Byte[] direto e resolveu. (o tipo no banco de dados ainda é Blob)

Como ficou o teste depois disso (poucas mudanças):[code] @Test
public void testBlob() throws Exception {

    byte[] bufImagemPrimitive = "abcde".getBytes();
    LOGGER.debug("bufImagemPrimitive.length: " + bufImagemPrimitive.length);
    Byte[] bufImagem = ArrayUtils.toObject(bufImagemPrimitive);
    LOGGER.debug("bufImagem.length: " + bufImagem.length);

    ArquivoImagemRemetida arquivoImagemRemetida = new ArquivoImagemRemetida();
    Blob blobImagem = Hibernate.createBlob(bufImagemPrimitive);
    LOGGER.debug("blobImagem.length(): " + blobImagem.length());
    arquivoImagemRemetida.setBinariosImagem(bufImagem);
    arquivoImagemRemetidaDAO.incluir(arquivoImagemRemetida);
}[/code]

Como ficou a parte referente à entidade:[code] private Byte[] binariosImagem;
//private Blob binariosImagem;

@Column(name = "TX_BINA", nullable = false)
public Byte[] getBinariosImagem() {
    return this.binariosImagem;
}

public void setBinariosImagem(Byte[] binariosImagem) {
    this.binariosImagem = binariosImagem;
}
/*
@Column(name = "TX_BINA", nullable = false)
@Lob
public Blob getBinariosImagem() {
    return this.binariosImagem;
}

public void setBinariosImagem(Blob binariosImagem) {
    this.binariosImagem = binariosImagem;
}
*/[/code]