假如我有一个 Account 对象,为什么不用这个对象中的帐号属性作为 id,而要单独定义一个 id?初学 Hibernate,请多指教,谢谢!

解决方案 »

  1.   

    id可以理解为学生的学号,给每个班的学生排上学号将在很多事情上省去很多麻烦,假如某学生改了名改了姓,那么非当事人将会不知道他是从哪冒出来的,也不知道原来那个学生又去了哪。为何要使用看似无业务需求的id这个字段,正是因为id需要作为数据唯一性标识的主键字段,如果这个主键涉及业务,那么很可能涉及修改,进而有可能存在主键重复的问题。这是数据库设计方面的知识,与hibernate无太大关系。建议楼主在搜索引擎搜一搜吧,我解释的也不怎么好,还要学习楼下的,呵呵。
      

  2.   

    再比如,账号为“aaa“并作为主键,另一张表与他是多对一关系,有一外键指向账号,假如哪天有改账号的需求,想想会发生什么。
      

  3.   

    你这个不是hibernate吧
    是数据库知识吧