Dozer - 创建父对象的引用
Dozer - create reference of parent object
我正在尝试使用 Dozer 从 JAXB 实体 "JaxbParent" 填充 Hibernate 实体 - "Parent"。
我的休眠实体:
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;
}
我的推土机 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 对象(以执行保存),但目前它是空的。我尝试将 'this' 引用传递给 MyCustomConverter,但这没有成功。
如何将父对象的引用传递给 customConverter,传递给每个子对象?也许我应该使用另一种方法?任何帮助表示赞赏。
最后,我最终在我的 DAO 层中手动添加了对父对象的引用,就在保存我的实体之前:
if(child.parent == null) {
child.parent = parent;
}
不幸的是,我无法在 Dozer 文档中找到其他解决方案。
我正在尝试使用 Dozer 从 JAXB 实体 "JaxbParent" 填充 Hibernate 实体 - "Parent"。 我的休眠实体:
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;
}
我的推土机 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 对象(以执行保存),但目前它是空的。我尝试将 'this' 引用传递给 MyCustomConverter,但这没有成功。 如何将父对象的引用传递给 customConverter,传递给每个子对象?也许我应该使用另一种方法?任何帮助表示赞赏。
最后,我最终在我的 DAO 层中手动添加了对父对象的引用,就在保存我的实体之前:
if(child.parent == null) {
child.parent = parent;
}
不幸的是,我无法在 Dozer 文档中找到其他解决方案。