Salvar Imagem no Banco de Dados (Mysql,Hibernate)

Olá pessoal estou tentando salvar imagens no banco utilizando as seguintes informações:

*Defini o tipo do campo como uma array de bytes.

*Utilizei a anotação @Lob para o campo.

*No método de persistencia estou setando o meu campo e utilizando uma variável do tipo uploadFile com um cast da classe IOUtils.

Com essas etapas consegui salvar mas ao tentar usar outros tipos de arquivo como jpeg ou pdf nao consigo e aparece a seguinte exceção:

Incorrect string value: ‘\xE2\xE3\xCF\xD3\x0A3…’ for column ‘arquivo’ at row 1

Minha pagina :

<h:head>

<f:metadata>

		<f:viewParam name="id" value="#{valCampBean.id_val_camp_trans_etiq}"/>	
		<f:viewParam name="idad" value="#{valCampBean.id_camp_adic}"/>
	
	</f:metadata>

</h:head>

<ui:composition template="/template/interna.xhtml">
	<ui:define name="titulo"></ui:define>
		<ui:define name="corpo">
			<h:form id="formCadastroCampAdic" enctype="multipart/form-data">
				<p:messages autoUpdate="true" closable="true" id = "messages" showDetail="true"/>
				
					<div class = "ui-fluid">
																												
							<p:panelGrid columns = "2" styleClass="ui-panelgrid-blank" >
																			
								<p:outputLabel value="Campo Adicional:" />										
								<p:inputText value="#{valCampBean.iniciar().id_camp_adic.id_camp_adic}" size = "11" style="width:auto" disabled="true"/>										
																									
								<p:outputLabel for = "transacao" value="Transação:"/>									
								<p:selectOneMenu style="width:120px" value="#{valCampBean.iniciar().id_camp_adic.id_transacao.id_transacao}" id="transacao" disabled="true">
									<f:selectItem noSelectionOption="true" itemLabel="--Selecione--"/>
									<f:selectItems value="#{transacaoBean.listar()}" var="trans" itemLabel="#{trans.descricao}" itemValue="#{trans.id_transacao}"/>
								</p:selectOneMenu>
																										
								<p:outputLabel for = "CodCampo" value="Código Campo:"/>
								<p:inputText  id = "CodCampo" value="#{valCampBean.iniciar().id_camp_adic.cod_campo}" size ="11" maxlength="11" style="width:auto" disabled="true"/>
																																				
								<p:outputLabel for = "Desc" value = "Descrição:"/>
								<p:inputText  id = "Desc" value = "#{valCampBean.iniciar().id_camp_adic.descricao}" size = "60" maxlength="60" style="width:auto" disabled="true"/>
									
								<p:outputLabel for = "res" value = "Resultado:" rendered = "#{valCampBean.desabilitarlista() == false}" />
								<p:inputText  id = "res" value = "#{valCampBean.iniciar().resultado}" size = "60" maxlength="60" style="width:auto" rendered="#{valCampBean.desabilitarlista() == false}"/>
																								
								<p:outputLabel for = "ValPos" value="Valor Possível:" rendered = "#{valCampBean.desabilitarlista()}"/>									
								<p:selectOneMenu style="width:120px" value="#{valCampBean.iniciar().resultado}" id="ValPos" rendered = "#{valCampBean.desabilitarlista()}">
									<f:selectItem noSelectionOption="true" itemLabel="--Selecione--"/>
									<f:selectItems value="#{campoValPosBean.listar()}" var="valPos" itemLabel="#{valPos.val_pos}" itemValue="#{valPos.val_pos}"/>
								</p:selectOneMenu>
																																
								<p:outputLabel for = "Obs" value = "Observação:"/> 
								<p:inputTextarea id = "Obs" value = "#{valCampBean.iniciar().observação}" size = "100" maxlength="100" style="width:auto"/>		
							
								<p:outputLabel value="Arquivo"/>
								<p:fileUpload value="#{valCampBean.arquivo}" mode="simple" skinSimple="true" cancelLabel="Cancelar" label= "Upload" allowTypes="png,txt,jpg,docx,pdf,xlsx,opt,"/>
																																												 
								<p:commandButton actionListener="#{valCampBean.salvar()}" value="Salvar" ajax="false" update="formCadastroCampAdic"/>			 
											           		   							
							</p:panelGrid>
							
						</div>
					</h:form>
					
					
		
		</ui:define>
</ui:composition>

Meu código para receber o arquivo :

	public String salvar() {
		
		Val_Campos_Trans_EtiqRN val_Campos_Trans_EtiqRN = new Val_Campos_Trans_EtiqRN();
					
		if(id_val_camp_trans_etiq == null){
					
			val_Campos_Trans_EtiqRN.salvar(this.valCampTrans);			
			return "/restrito/listagem_val_campos_trans_etiq.xhtml?idtreti=" + this.valCampTrans.getId_trans_etiq().getId_transacao_etiqueta() + "faces-redirect=true";
		
	}else{
			
				
			try {
			
				this.valCampTrans.setArquivo(IOUtils.toByteArray(arquivo.getInputstream()));

				val_Campos_Trans_EtiqRN.alterar(this.valCampTrans);
				return "/restrito/listagem_val_campos_trans_etiq.xhtml?idtreti=" + this.valCampTrans.getId_trans_etiq().getId_transacao_etiqueta() + "faces-redirect=true";
			
			
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
						
	}
		return null;
		
	}

Alguém sabe o que pode estar errado?Agradeço desde já !