SQLSERVER Image类型 Hibernate 映射问题 简单实现

首先说明语言环境Java、Hibernate 3.2,其他废话不说
实体类:byte[]
SQLSERVER2005:image (2000没测试过)
重点 Hibernate:serializable
别的该怎么做还是怎么做。
网上其他方法测试说明:
1、实体类:String
SQLSERVER2005:text
Hibernate:text
使用new String(byte[],charset) 和 String.getBytes(charset) 转换
说明: 当charset使用GB2312,UTF-8,两种类型,再转换时数据就已经出问题了。
                         用ISO-8859-1时,转换没问题,存入数据库后再取出,数据又出问题了。
2、实体类:byte[]
SQLSERVER2005:text/image
Hibernate:blob
说明:存入数据库时报错。重写方言:存入数据库还是报错。
3、换一个连接驱动器:jtds.jar 下载地址:http://sourceforge.net/project/showfiles.php?group_id=33291

连接字符串:driver = net.sourceforge.jtds.jdbc.Driver
url = jdbc:jtds:sqlserver://127.0.0.1:1433/dbname
username=sa
password=
如果这样了还要报错,那再自定义一个方言类来重写hibernate的SQLServerDialect
import java.sql.Types;
import org.hibernate.Hibernate;
import org.hibernate.dialect.SQLServerDialect;
public class MySQLServerDialect extends SQLServerDialect {
         public MySQLServerDialect() {
                  super();
                  registerHibernateType(Types.LONGVARBINARY, Hibernate.BLOB.getName());
         }
}
修改hibernate.hbm.xml配置
<property name="hibernate.dialect">com.test.hibernate.MySQLServerDialect</property>
OK了!
说明:没试过。

posted @ 2009-08-14 17:09  Jerry Young  阅读(2186)  评论(1编辑  收藏  举报