`
flyingis
  • 浏览: 289903 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Hibernate学习心得--映射对象标识符

阅读更多
    作者:Flyingis

    在关系数据库中的主键可分为自然主键(具有业务含义)和代理主键(不具有业务含义),其中代理主键可以适应不断变化的业务需求,因此更加流行。代理主键通常为整数类型,与此对应,在持久化类中野应该把OID定义为整数类型,Hibernate允许把OID定义为short、int和long类型,以及它们的包装类型。

    Hibernate提供了几种内置标识符生成器,每一种标识符生成器都有它的使用范围,应该根据所使用的数据库和Hibernate应用的软件架构来选择合适的标识符生成器。下面是几种常用数据库系统可使用的标识符生成器:

MYSQL: identity increment hilo native
MS SQL Server: identity increment hilo native
Oracle: sequence seqhilo hilo increment native
夸平台开发: native

    OID是为持久化层服务的,它不具备业务含义,而域对象位于业务逻辑层,用来描述业务模型。因此,在域对象中强行加入不具备业务含义的OID,可以看作是持久化层对业务逻辑层的一种渗透,但这种渗透是不可避免的,否则Hibernate就无法建立缓存中的对象与数据库中记录的对应关系。

    当然,映射中还包括自然主键的映射方案。对于从头设计的关系数据库模型,应该优先考虑使用代理主键。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics