hibernate使用思考

hibernate使用必须注意以下问题:

 

关系型数据库与面向对象的冲突

  • 范式上的冲突,例address面向对象思考的话你要分成province city address zipcode等字符,那么关系数据库上我们设计一般只是将address设置成一个字段。
  • 面向对象的设计模式中子类的的表示。我们关系数据库中并没有表之间的继承关系
  • 关系数据库的记录集是否相等判断是通过主键判断,但是面向对象的判断是通过equals和==去判断相等。
  • 关系模式当中我们会为每一张表多创建一个自动增长的标识列,但是面向对象的模式设计这个列确是不需要的。
  • 例如是many to many的关系,我们在面向对象的时候会为例个例多增加一个字段例private set products去印象另一张表。这一个例在面向对象设计思考时也是不必要的。
  • 面向对象访问两层的数据你可能需要使用搜索串aUser.getBillingDetails().getAccountNumber()这样经营两次的搜索才能得到你想要的,但是这样却使用的两次的数据库IO。但是像这样的语句如果你直接使用join两个表,一句SQL语句就能达到相同的目标。所以这边是否有面向对象的效率问题呢?
  • 基于以上问题,直接选择面向对象的数据库是否是解决的方案呢?主要是由于面向对象数据库并没有被广泛的商用,并且也没有被快速使用的趋势。所以我们还是选择普通的关系数据库。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值