在上传的文件保存在数据库的blog字段中,页面报java.sql.SQLException: ORA-01460: 转换请求无法实施或不合理 怎么解决
页面报了这个错:java.sql.SQLException: ORA-01460: 转换请求无法实施或不合理。控制台能打印出hql语句来,就是插入不了数据,数据库里的字段是blog类型
控制台打印的hql语句;
Hibernate: select max(ID) from mail_oa
Hibernate: insert into mail_oa (writer, reciever, title, read, junk, infor, accessory, time, ID) values (?, ?, ?, ?, ?, ?, ?, ?, ?)
页面报的错误
HTTP Status 500 - could not insert: [com.pb.entity.Mail]
type Exception report
message could not insert: [com.pb.entity.Mail]
description The server encountered an internal error that prevented it from fulfilling this request.
exception
org.hibernate.QueryTimeoutException: could not insert: [com.pb.entity.Mail]
org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:124)
org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2454)
org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2874)
org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:79)
org.hibernate.engine.ActionQueue.execute(ActionQueue.java:273)
org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:265)
.......错误太长剪了一部分,不够写
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:511)
org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
root cause
java.sql.SQLException: ORA-01460: 转换请求无法实施或不合理
oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
oracle.jdbc.ttc7.Oall7.receive(Oall7.java:573)
oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1891)
oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1093)
oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:2047)
oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:1940)
oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2709)
oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:589)
org.hibernate.jdbc.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:46)
org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2434)
org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2874)
org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:79)
org.hibernate.engine.ActionQueue.execute(ActionQueue.java:273)
org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:265)
org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:184)
org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:51)
org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1216)
org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:383)
org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:133)
com.pb.basedao.BaseDaoImpl.save(BaseDaoImpl.java:49)
com.pb.service.MailServiceImpl.mailSave(MailServiceImpl.java:74)
com.pb.webAction.MailAction.mailWriteAction(MailAction.java:176)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:483)
com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:453)
com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:292)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:255)
org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:256)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:265)
org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:138)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:211)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:211)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:90)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:320)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:511)
org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.57 logs.
action方法
public String mailWriteAction(){
mail.setInfo(Hibernate.createClob(discription));
String savePath=ServletActionContext.getServletContext().getRealPath("/upload/"+this.uploadFileName);
byte[] buffer;
try {
FileInputStream fis=new FileInputStream(upload);
buffer=new byte[fis.available()];
fis.read(buffer);
System.out.println(buffer.length);
mail.setAccessory(Hibernate.createBlob(buffer));
fis.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
boolean flag=mailService.mailSave(mail);
if(flag==true){
return "success";
}else{
return "fail";
}
}
实体类: 只贴了相关字段
package com.pb.entity;
import java.sql.Blob;
import java.sql.Clob;
import java.util.Date;
public class Mail {
private Blob accessory;
private Date time;
private String read;
private String junk;
public Clob getInfo() {
return info;
}
public void setInfo(Clob info) {
this.info = info;
}
public Date getTime() {
return time;
}
public void setTime(Date time) {
this.time = time;
}
public Blob getAccessory() {
return accessory;
}
public void setAccessory(Blob accessory) {
this.accessory = accessory;
}
}
配置文件
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.pb.entity.Mail" table="mail_oa">
<id name="id" type="java.lang.Integer">
<column name="ID" precision="9" scale="0" />
<generator class="increment" />
</id>
<property name="info" type="java.sql.Clob" column="infor"/>
<property name="accessory" type="java.sql.Blob" column="accessory"/>
<property name="time" type="java.util.Date" column="time"/>
</class>
</hibernate-mapping>