现在有两张表,主外键关系是一对多,但是我不想两张表一起写数据进去,想先把带有主键的表写了,等到业务处理完毕,再把外键的数据写进去。不知道写外键表的时候如何得到主键ID值啊?难道要去主键表里查?

解决方案 »

  1.   

    这问题好绕,20分有点少
    你先把主键的那个实体存进数据库后,它就变成了 persistens 状态,就拥有了id值,到时候写外键那个实体的时候,再把主键那个实体的id拿出来,完事儿。
      

  2.   

    你调主表的save()方法后会返回插入数据的ID
    int id = xxx.save()
      

  3.   

    在WEB.XML里配置延时加载吧
    <filter>
      <filter-name>OpenSessionInViewFilter</filter-name> 
      <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class> 
    - <init-param>
      <param-name>sessionFactoryBeanName</param-name> 
    - <!--  spring里面的sessionFactory 
      --> 
      <param-value>sessionFactory</param-value> 
      </init-param>
      </filter>
    - <!--  过滤 
      --> 
    - <filter-mapping>
      <filter-name>OpenSessionInViewFilter</filter-name> 
      <url-pattern>/*</url-pattern> 
      </filter-mapping>
    - <listener>
      <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
      </listener>