Hibernate为什么一定要做关联映射?

  我用Hibernate也有半年了,感觉Hibernate的映射关系太复杂了,与懒性加载,反转控制等结合在一起,要想控制好,实非常人之所能。个人感觉,如果不用Hibernate的关联,就把它当作关系数据库来操作,使用和理解上都会方便不少,例如一个订单和产品的配置文件写成这样:
<hibernate-mapping>
 <class name="db.Order" table="orders" catalog="sample">
  <id name="id" type="java.lang.String">
   <column name="ID" length="32" />
   <generator class="uuid.hex" />
  </id>
  <property name="orderTitle" type="java.lang.String">
   <column name="ORDER_TITLE" length="30" />
  </property>
 </class>
</hibernate-mapping>

<hibernate-mapping>
 <class name="db.Product" table="products" catalog="sample">
  <id name="id" type="java.lang.String">
   <column name="ID" length="32" />
   <generator class="uuid.hex" />
  </id>
  <property name="productTitle" type="java.lang.String">
   <column name="PRODUCT_TITLE" length="30" />
  </property>
  <property name="orderId" type="java.lang.String">
   <column name="ORDER_ID" length="32" />
  </property>  
 </class>
</hibernate-mapping>
操作时:
  Order o=new Order();
  o.setOrderTitle("order1");
  dao.saveOne(o);
  Product p=new Product();
  p.setProductTitle("product1");
  p.setOrderId(o.getId());
  dao.saveOne(p); 
                  (查询略)
这样一来,纯粹是用关系数据库的思想来使用Hibernate,一个类对应一个数据库表,表之间的约束交给数据库的键来控制, 这样一来,即得到了Hibernate的优点:不用手工写SQL,对象级别缓存,数据库可移植性,也不必费力地学习和理解它了,纯粹是一个薄薄的JDBC的包装; 缺点就是不能在HQL中写出"...object1.object2.object3..." 式的对象引用,但我认为相对于理解它复杂的配置来说,这点牺牲还是值得的, Hibernate的高级特性当然没法用上了,但相比于直接用JDBC或用ibatis写SQL总要好得多,在新手多、工期短的项目中,可节省很多培训时间,请问我的这种想法是否可行?  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值