`

这能否算Hibernate的Bug?

阅读更多
遇到一个非常奇怪的问题,感觉象hibernate的bug,即使不是bug,也是设计的有失偏颇。
一个简单的Pojo映射如下:
<hibernate-mapping package="cn.crazyasp.album.user">
  <class name="Member" table="V_MemberDetail_info">
    <id name="oid" type="long" column="MBDT_index">
      <generator class="native" />
    </id>
    <property name="id" column="MBDT_MBUid" type="string"/>
    <property name="name" column="MBDT_City" type="string"/>	
  </class>
</hibernate-mapping>

oid为自增long类型,id为guid,表中为string类型.
简单查询的hql为:from Member as t where t.id = ?
ok,这看起来是没有问题的,一切都很ok.
可事实上,这条hql执行时,它应该去根据哪个属性去查询呢?
凭感觉,它应该根据属性名称即“property name='id'”去做查询,因为非id属性就是如此;
可事实上,它却去根据oid即hibernate的id结点去查询.......
当然,这种情况是一种极特别的情况,被我遇到了而已..........
这也许不算bug,也许人家就是如此设计的吧....
分享到:
评论
3 楼 DavyLee 2008-05-12  
引用

forestking 
这个不是bug,在Gavin King的书里明确的说过,在hql中使用的id就是指hbm中定义的id,也就是这里oid,不管这个id的名字是什么,这样其实是比较方便的,因为在你不知道id的名字的时候也可以用id。你的这种情况可能是具体的要求,可是我觉得完全没有必要有一个普通属性叫做id,这会造成误解的。


呵呵,你说的很对,但我这个是特殊需求,呵呵,本来用的就是id属性,同时也是hibernate的id结点(guid),但后来有人把表里增加了一列数字做自增pk,而我不想对代码做大的调整,所以用就把id做为普通属性了,然后又增加了oid..........
2 楼 forestking 2008-05-12  
这个不是bug,在Gavin King的书里明确的说过,在hql中使用的id就是指hbm中定义的id,也就是这里oid,不管这个id的名字是什么,这样其实是比较方便的,因为在你不知道id的名字的时候也可以用id。你的这种情况可能是具体的要求,可是我觉得完全没有必要有一个普通属性叫做id,这会造成误解的。
1 楼 wf_chn 2008-05-10  
把类代码贴出来看看

相关推荐

    Hibernate 3.2.4+ bug

    NULL 博文链接:https://imp9527.iteye.com/blog/438677

    hibernate的xml文件bug

    由jbosstools创建xmll文件出现bug

    Hibernate Synchronizer 插件重大缺陷改正

    Hibernate Synchronizer 插件重大缺陷改正

    hibernate连接池.doc

    但这个连接池性能不佳,且存在诸多BUG(笔者就曾在Mysql环境下被八小时连接悬空问题困扰过),因此官方也只是建议仅在开发环境下使用。 三、Hibernate2和Hibernate3的命名空间有所变化。例如,配置C3P0时的provider...

    论坛系统 hibernate jsp hibernate 毕业论文项目

    论坛系统hibernate jsp hibernate 毕业论文项目

    深入浅出Hibernate源码

    虽然在更高版本中应该可以不加修改的运行,但我们对此不加以保证。(v1.2将对Hibernate 3.0.4进行测试) 安装说明 --------- 1, 确认jdk 1.4.2已经正确安装; 2,将本程序包解压,假设目录为: x:\rs\hib-samples 3, ...

    HIbernate免注解实现操作数据库 及Hibernate3连接SQL的BUG解决办法

    NULL 博文链接:https://toshibasony.iteye.com/blog/708026

    hibernate连接池配置

    但这个连接池性能不佳,且存在诸多BUG(笔者就曾在Mysql环境下被八小时连接悬空问题困扰过),因此官方也只是建议仅在开发环境下使用。 三、Hibernate2和Hibernate3的命名空间有所变化。例如,配置C3P0时的provider...

    实现JSP+SERVLET+Hibernate基本分页

    1、可以取消hibernate.cfg.xml中&lt;property name="hbm2ddl.auto"&gt;create注释创建表结构 2、可以通过src下的db.sql创建表 V2.0版本更新内容 1、添加struts2.1支持 2、修复没查到数据,组显示负数BUG V1.5版更新内容 1...

    Bug管理系统 struts2+sping2.5+hibernate3(2-2)

    1 TOMCAT安装路径中请不要包含中文字符,否则程序将不能正常运行. 目录及文件: debug\document PDM及数据库脚本。 作者留言: 本程序是作者学习struts spring hibernate构架后为了练习开发的一个小程序。开发此...

    Struts2+hibernate3

    Struts2+hibernate3+mysql+myseclipse 开发项目 常见bug

    hibernate 自连接 emp例子

    hibernate作为底层,通过关系配置,配置Oracle数据库中的EMP表,进行自连接。里面重要的是例子,经过测试的,无bug,放心调试。

    Spring3 MVC +HibernateJPA Eclipse Demo

    1、本示例只是借花献佛,其实网上SpringMVC+Hibernate-JPA的示例代码一大堆,但是有源代码的demo很少,而且大部分介绍不全面,容易造成学习误区。我也是曾经学习网上示例来完成这个demo。本人是参考...

    Hibernate的连接池和数据源配置

    但这个连接池性能不佳,且存在诸多BUG(笔者就曾在Mysql环境下被八小时连接悬空问题困扰过),因此官方也只是建议仅在开发环境下使用。 三、Hibernate2和Hibernate3的命名空间有所变化。例如,配置C3P0时的provider_...

    Hibernate教程26_事务并发处理

    http://blog.csdn.net/e421083458/article/details/8794127 该源码为Hibernate教程配套源码

    Hibernate v3.2中文参考手册

    如果你对Hibernate和对象/关系数据库映射还是个新手,或者甚至对Java也不熟悉,请按照下面的步骤来学习。 &lt;br&gt;阅读第 1 章 Hibernate入门 ,这是一篇包含详细的逐步指导的指南。本指南的源代码包含在发行包中,...

    hibernate jar 最基本jar包(比原来那个好)

    hibernate jar 最基本jar包(比原来那个好) ...3、解决了Unknown type ‘246 in column 5 of 6 in binary-encod问题,用mysql-connector-java-3.0.17-bin.jar没有问题,而且目前好象只有这个版本无此bug。

    Hibernate3.2官方中文参考手册

    如果你对Hibernate和对象/关系数据库映射还是个新手,或者甚至对Java也不熟悉,请按照下面的步骤来学习。 &lt;br&gt;阅读第 1 章 Hibernate入门 ,这是一篇包含详细的逐步指导的指南。本指南的源代码包含在发行包中,...

    深入浅出Hibernate

    java sdk 1.4.2 7, mysql 4.1 (作为后台数据库) 8, 至少250M硬盘空间(hibernate 2,3和webwork就将占据138M) &lt;br/&gt;虽然在更高版本中应该可以不加修改的运行,但我们对此不加以保证。(v1.2将对...

    hibernate最好的中文文档 hibernate api

    hibernate最好的中文文档.rar hibernate api 最全的hibernate api

Global site tag (gtag.js) - Google Analytics