父对象的版本在其子对象的状态更改时不会更改 [英] Version of the parent object does not change when its child object's state changes

查看:82
本文介绍了父对象的版本在其子对象的状态更改时不会更改的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用Hibernate3
我有一个简单的一对多关系(父对象有一组子对象)
如果子对象被添加/删除,父对象的版本被更新在那里好像儿童对象的状态改变了,父母的版本没有得到更新。

I am using Hibernate3 I have a simple one to many relationship(Parent object has as set of child objects) if the child objects are added/removed, the version of the parent object is updated where as if the state of the child object is changed, the version of the parent is not getting updated.

以下是映射 -
Category.hbm。 xml

Here is the mapping - Category.hbm.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="net.codejava.hibernate">
<class name="Category" table="CATEGORY">
    <id name="id" column="CATEGORY_ID">
        <generator class="native"/>
    </id>
    <property name="name" column="NAME" />
    <version name="version" type="integer" column="version" unsaved-value="null" />
    <set name="products" inverse="true" cascade="all-delete-orphan">
        <key column="CATEGORY_ID" not-null="true" />
        <one-to-many class="Product"/>
    </set>
</class> 

Product.hbm.xml

Product.hbm.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="net.codejava.hibernate">
<class name="Product" table="PRODUCT">
    <id name="id" column="PRODUCT_ID">
        <generator class="native"/>
    </id>
    <version name="version" type="integer" column="version" unsaved-value="null" />
    <property name="name" column="NAME" />
    <property name="description" column="DESCRIPTION" />
    <property name="price" column="PRICE" type="float" />

    <many-to-one name="category" class="Category"
        column="CATEGORY_ID" not-null="true"/>
</class> 

产品变更时,产品.version正确更新,但Category.version保持不变。

When the Product changes, Product.version is updated properly but the Category.version remains the same.

我认为这是一个横切关注的问题,必须有一个合理的解决方案。我做了很多搜索,找不到一个。请帮助我

I assume this is a cross cutting concern and there has to be a plausible solution for this. I did a lot of searching and could not find one. Please help me out

推荐答案

是的,这只是休眠工作方式的限制,恐怕。唯一的解决办法是在需要进行更改时在两边进行更改。

Yes, this is just a limitation of the way hibernate works, I'm afraid. The only solution is to change it on both sides when you need to make a change.

您也可以刷新父级,但请记住,这会触及数据库。

You could also refresh the parent, but bear in mind that that will hit the database.

这篇关于父对象的版本在其子对象的状态更改时不会更改的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆