首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Hibernate集合处理基础

Hibernate集合处理基础
EN

Stack Overflow用户
提问于 2009-12-15 21:00:17
回答 1查看 809关注 0票数 0

我是新来冬眠的。我有三个表:公司、个人资料和网站。关系是-一家公司有很多个人资料和网站(一对多)。

代码语言:javascript
运行
复制
<hibernate-mapping>

<class name="com.bla.dataobject.CompanyData" table="companies">
 <id name="companyId" column="company_id">
  <generator class="increment"/>
 </id>
 <property name="name" column="company_name" type="java.lang.String"/>
 <property name="description" column="company_information" type="java.lang.String"/>

 <set name="sites" table="company_sites" inverse="true" cascade="all-delete-orphan" lazy="false">
    <key column="company_id" />
    <one-to-many class="com.bla.dataobject.CompanySiteData"/>
 </set>

 <set name="profiles" table="company_profiles" inverse="true" cascade="all-delete-orphan" lazy="false">
    <key column="company_id" />
    <one-to-many class="com.bla.dataobject.CompanyProfile"/>
 </set>
</class>

<class name="com.bla.dataobject.CompanySiteData" table="company_sites">
    <id name="siteId" column="site_id">
        <generator class="increment"/>
    </id>

   <property name="siteProxySettings" column="PROXY_SETTINGS" type="java.lang.String"/>
   .................
   <property name="siteName" column="SITE_NAME" type="java.lang.String"/>


   <many-to-one name="companyData" class="com.bla.dataobject.CompanyData" column="company_id" not-null="true"/>

</class>

<class name="com.bla.dataobject.CompanyProfile" table="company_profiles">
 <id name="profileId" column="profile_id">
  <generator class="increment"/>
 </id>

 <property ............./>

 <many-to-one name="companyData" class="com.bla.dataobject.CompanyData" column="company_id" not-null="true"/>

</class>

insert和delete工作正常,但更新不起作用。我的应用程序的一边是Axis2 servlet,另一边是hibernate。我通过SOAP将Company对象提供给表示层,然后表示层对对象进行更改,并请求持久化更改(返回的back对象中包含hibernate id )。如果我只是使update session.update(对象);集合没有更新(而是只更新公司平面参数),那么如果我从db获取存储的公司对象并在两个对象中执行合并(例如删除所有集合并插入接收的集合,然后更新原始对象),则只有当所有集合项都是新的(否则,对已经存在的表中的集合名称获得DB唯一约束)时才能工作。因此,我的问题是: 1.尝试更新“父对象”是正确的,还是需要单独更新所有3个对象? 2.更新集合(添加/删除/更新)的正确方法是什么?

我非常喜欢使用集合处理的代码示例(我没有找到自己)。

非常感谢

EN

回答 1

Stack Overflow用户

发布于 2009-12-15 21:25:56

  1. 尝试保存更新方法
  2. 在配置xml中设置hibernate.show_sql = true并检查日志信息
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1910367

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档