去网上搜一搜,没1个正经的比如保存一个Order表与一个Order_Item表
Order表结构:
OrderId(自增)Order_Item表结构:
OrderItemId(自增),OrderId在保存时理论上是先把主表保存了,而后获取ORDERID,再保存Order_Item的OrderId,可是如何做呢?以前都是写一个存储过程,把OrderId预约一下

解决方案 »

  1.   

    Hibernate保存主表Order,然后从缓存或者从数据库中获取与Order_Item相关联的Order的OrderId,  如果数据库与缓存中都不存在这数据,就加载Order 的OrderId时抛异常~
      

  2.   

    这个貌似不需要保存OrderId生成一个中间表。这需要在OrderItem生成时把OrderId存进去就行了吧!对于这种细节我不太清楚(没什么必要吧,又不写数据库的代码)。
      

  3.   

    你保存的时候用的是Hibernate提供的session
    这个session其实就是缓存session.save(obj)只是把obj纳入缓存管理起来,
    在最终整个事务commit时,会调用session.flush()方法
    session.flush()方法判断缓存中的对象和数据库表中的数据是否一致
    不一致时,发送sql语句,也就是所谓的持久化insert你的Order
    session.save(Order)这个方法的返回值返回Order的主键
    然后再insert你的Order_Item