http://www.javayou.com (收藏,设为首页)
当你不能再拥有时,你唯一能做的,就是让自己不要忘记 (手机请访问 http://3g.dlog.cn/javayou)

关于类继承在Hibernate的问题

2005年12月30日(Friday) 21点08分 作者: Winter 天气: 心情: 一般

今天碰到一个这样的问题:

有一个表包含了一个大文本字段,查询时候发现有没有带大文本字段执行的速度相差3-5倍,于是想着使用两个类同时映射到同一张表,假设这两个类分别是A、B,A中除了不包含大文本字段外,其他字段都包含;B直接继承A类并增加大文本字段。

分别编写两个映射文件,这样如果我需要大文本字段的内容的查询就用B进行查询,不需要大文本字段内容的查询就用A进行查许。

但是在实际运行中发现,对A进行查询的时候,Hibernate发出了两条SQL语句,一条是对A进行查询,另外一条对B查询。很是纳闷,这样一来不仅性能没有提升反倒而下降。

经过试验找到了解决的办法:

再增加一个类名为Base类,把A中所有属性以及方法搬到Base类来,A extends Base,同时B extends Base,映射文件无需改动,Base不做任何映射! 问题解决!

以后实际应用在使用到大字段的时候都小心谨慎,毕竟性能的差距很大,大家不妨试验一下。

环境:Hibernate 3.0 , SQL SERVER 2000, DB2 v8.2

标签: Hibernate 
姓名: 
邮箱:  {可选}
网址:  {可选} 此评论只有我和写日记的人查阅
校验码: ... <我看不清楚>
网记为您提供手机和互联网同步的个人主页,带给你不一样的体验