use*_*032 4 hibernate hibernate-mapping
我在谷歌搜索了很多,但我没有找到任何满意的答案.所以任何一个请告诉我一个senario,在hibernate中使用hbm文件中的natural-id.任何帮助将不胜感激.
提前致谢.....
你的问题有点模糊,但在hbm文件中使用Natural-Id的一个原因是自动强制执行应该是唯一的事情.该属性应该分配给使您的数据唯一的字段.当您将属性放在这些字段上时,hibernate将为您生成唯一索引.
如果你的问题是Why should one ever use natural keys? 这里有太多要列出但是一个简单的例子......
如果您决定通过Web服务,订阅源等公开您的数据,那么为最终用户提供数据库密钥并不是一个好主意.这有很多原因,其中一个原因是如果它们存储它会发生什么,你重新键入?你被卡住了!最好用他们理解的术语来谈论,这将是数据中已经存在的东西(当然;))
如果您有兴趣在自己的AgileData.org上阅读有关此内容,那么可以很好地了解Natural vs Surrogate
强烈建议您在表上使用代理主键,即名为 id 的列,该列不是从业务数据派生的。然而,很可能存在形成表的合理业务键的字段组合。这些字段应该是非空且不可变的。这将被标记为自然键,也将在该类的 equals 和 hashCode 实现中使用。
如果 Hibernate 要从映射的域类生成数据库模式,则此自然键将用于生成表的唯一索引。
| 归档时间: |
|
| 查看次数: |
2470 次 |
| 最近记录: |