过了个周末,回来之后启动项目,然后就报这个错误,我就特别纳闷,然后在网上查,原因是数据库数据类型和Java的数据类型不一致。我想在数据库中存储照片,java中的属性类型为byte[]然后,在数据库中为blob类型,但是通过Hibernate配置,却报了错误,然后经过在网上查找,知道了原因,然后经过一番周折终于弄好了。结果过程如下:
重新写一个数据库方言的类
public class BlobMySQLDialect extends MySQLDialect{
public BlobMySQLDialect(){
super();
registerHibernateType(Types.LONGVARBINARY,Hibernate.BLOB.getName());//其中第一个参数为在Hibernate中欲配置的类型,第二个参数为数据库中想使用的类型,这是我目前的理解,
}
}
然后在Hibernate配置中,将数据库的方言改为此类:
<property name="dialect">com.framework.BlobMySQLDialect</property>