Java 休眠和子对象(添加与清除)
假设我有一个带汽车和轮子的领域模型。Wheels是一个轮子列表 车轮与汽车之间存在多对一的关系 如果我从Hibernate取回一个对象,它有4个轮子。我把那个物体去掉4个轮子,加上4个。然后保存。Java 休眠和子对象(添加与清除),java,hibernate,orm,Java,Hibernate,Orm,假设我有一个带汽车和轮子的领域模型。Wheels是一个轮子列表 车轮与汽车之间存在多对一的关系 如果我从Hibernate取回一个对象,它有4个轮子。我把那个物体去掉4个轮子,加上4个。然后保存。 如果我再次向Hibernate请求对象,它会返回一个带有8个轮子的auto。。。我们做错了什么?我有几天没有访问源代码的权限,但我想让我们的Java开发人员朝着正确的方向前进。谢谢。我相信,但我不是100%肯定,这取决于集合的级联属性。例如,如果您有: <hibernate-mapping pa
如果我再次向Hibernate请求对象,它会返回一个带有8个轮子的auto。。。我们做错了什么?我有几天没有访问源代码的权限,但我想让我们的Java开发人员朝着正确的方向前进。谢谢。我相信,但我不是100%肯定,这取决于集合的
级联属性。例如,如果您有:
<hibernate-mapping package="com.foo">
<class name="Automobile">
...
<set name="Wheels" cascade="delete-orphan"> <!-- or "all-delete-orphan" -->
...
</set>
</class>
</hibernate-mapping>
...
...
那可能就行了。我相信这取决于集合的cascade
属性,但我不是100%肯定。例如,如果您有:
<hibernate-mapping package="com.foo">
<class name="Automobile">
...
<set name="Wheels" cascade="delete-orphan"> <!-- or "all-delete-orphan" -->
...
</set>
</class>
</hibernate-mapping>
...
...
那么这可能就够了。你的问题听起来像是@embeddeble类的集合,其中组件(part-Wheel)的生命周期与其所属实体实例(Automobile)的生命周期绑定
及
它会满足你的需要。但请记住必须提供equals和hashCode实现才能正常工作
@Embeddable
public class Wheel implements Serializable {
/**
* equals and hashCode goes here
* Prefer To use business key
*/
}
你的问题听起来像是@Embeddeble类的集合,其中一个组件(part-Wheel)的生命周期与其所属实体实例(Automobile)的生命周期绑定
及
它会满足你的需要。但请记住必须提供equals和hashCode实现才能正常工作
@Embeddable
public class Wheel implements Serializable {
/**
* equals and hashCode goes here
* Prefer To use business key
*/
}
这种关联是双向的吗?不,轮子只有半径、深度等道具。。。没有汽车协会。在领域模型中,仅从汽车到车轮。请原谅,您在问题中说“车轮与汽车有多对一的关系”。你的评论让事情变得更混乱了:/这种关联是双向的吗?不,轮子只有半径、深度等道具。。。没有汽车协会。在领域模型中,仅从汽车到车轮。请原谅,您在问题中说“车轮与汽车有多对一的关系”。你的评论让事情变得更混乱了,谢谢。我刚读到这方面的消息+1&可能是答案。我会让我的人来测试这个。很酷,谢谢。我刚读到这方面的消息+1&可能是答案。我会让我的人来测试这个。
@Embeddable
public class Wheel implements Serializable {
/**
* equals and hashCode goes here
* Prefer To use business key
*/
}