gpt4 book ai didi

hibernate - Dozer - 创建父对象的引用

转载 作者:行者123 更新时间:2023-12-03 08:18:05 26 4
gpt4 key购买 nike

我正在尝试使用 Dozer 从 JAXB 实体“JaxbParent”填充 Hibernate 实体 - “Parent”。
我的 hibernate 实体:

public class Parent 
{
String name;
String age;

@OneToMany
private Set<Child> childSet;
}

public class Child
{
String name;
String age;

@ManyToOne
private Parent parent;
}

我的 Jaxb 实体看起来像:
public class JaxbParent 
{
List<JaxbChild> childList;
}

我的 Dozer xml 映射配置:
<mapping wildcard="false">
<class-a>com.test.Parent</class-a>
<class-b>com.test.JaxbParent</class-b>
<field custom-converter="com.test.MyCustomConverter">
<a>childSet</a>
<b>childList</b>
</field>
</mapping>

因此,为了将 childList 转换为 childSet,我使用了 CustomConverter,并且我得到了正确的数据字段。
问题是,Hibernate 需要每个 Child 都有对 Parent 对象的引用(以执行保存),但目前它为 null。我尝试将“this”引用传递给 MyCustomConverter,但这没有成功。
如何将父对象的引用传递给 customConverter,传递给每个子对象?也许我应该使用另一种方法?任何帮助表示赞赏。

最佳答案

最后,我最终在我的 DAO 层中手动添加对父对象的引用,就在保存我的实体之前:

if(child.parent == null) {
child.parent = parent;
}

不幸的是,我在 Dozer 文档中找不到其他解决方案。

关于hibernate - Dozer - 创建父对象的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33443022/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com