Estou tendo problemas para fazer um create native query com um parametro binário.
o código é o seguinte:
Query query = dao.createNativeQuery("INSERT INTO IMAGEM_PADRAO(ID_IMAGEM_PADRAO, NOME_IMAGEM, IMAGEM) values ('5', 'Odontograma2', ?)");
query.setParameter(1, arquivo);
query.executeUpdate();
Sendo a variavel arquivo um byte[]
o erro retornado é:
Hibernate: INSERT INTO IMAGEM_PADRAO(ID_IMAGEM_PADRAO, NOME_IMAGEM, IMAGEM) values ('5', 'Odontograma2', ?);
javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not execute native bulk manipulation query
at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:637)
at org.hibernate.ejb.QueryImpl.executeUpdate(QueryImpl.java:58)
at br.com.sysweb.persistencia.ExecutaQueryNativa.executaLinha(ExecutaQueryNativa.java:83)
at br.com.sysweb.persistencia.ExecutaQueryNativa.executaLinhaComArquivo(ExecutaQueryNativa.java:67)
at br.com.sysweb.persistencia.ExecutaQueryNativa.executaQuery(ExecutaQueryNativa.java:38)
at br.com.sysweb.persistencia.ControllerExecutaQueryNativa.main(ControllerExecutaQueryNativa.java:8)
Caused by: org.hibernate.exception.SQLGrammarException: could not execute native bulk manipulation query
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.engine.query.NativeSQLQueryPlan.performExecuteUpdate(NativeSQLQueryPlan.java:174)
at org.hibernate.impl.SessionImpl.executeNativeUpdate(SessionImpl.java:1163)
at org.hibernate.impl.SQLQueryImpl.executeUpdate(SQLQueryImpl.java:334)
at org.hibernate.ejb.QueryImpl.executeUpdate(QueryImpl.java:49)
... 4 more
Caused by: java.sql.SQLException: ORA-00911: caractere inválido
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:745)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:219)
at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:970)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1190)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3370)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3454)
at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeUpdate(NewProxyPreparedStatement.java:105)
at org.hibernate.engine.query.NativeSQLQueryPlan.performExecuteUpdate(NativeSQLQueryPlan.java:165)
... 7 more
Alguem sabe como eu faço um insert que contenha um arquivo binario usando native query?