当前位置: 首页 > 知识库问答 >
问题:

Dozer-创建父对象的引用

云锦
2023-03-14

我正在尝试使用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;
}

My 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>

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

共有1个答案

宓毅庵
2023-03-14

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

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

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

 类似资料:
  • 下面的Java代码在创建新实例的行抛出。 行号。14是,下面是异常的堆栈跟踪:

  • 我写了这个,但我不明白这是什么。

  • JavaScript对每个创建的对象都会设置一个原型,指向它的原型对象。 当我们用obj.xxx访问一个对象的属性时,JavaScript引擎先在当前对象上查找该属性,如果没有找到,就到其原型对象上找,如果还没有找到,就一直上溯到Object.prototype对象,最后,如果还没有找到,就只能返回undefined。 例如,创建一个Array对象: var arr = [1, 2, 3]; 其

  • 我厌倦了下面的片段,得到了3个对象和3个引用的答案。但在回答键中说,这是4个对象和3个参考。我不知道是我错了还是回答键错了。请有人帮忙。 我的答案解释: 参考文献:str1、str2、str3。因此引用数=3。 对象:最初创建的对象计数=0。 第1行创建值为Java并引用str1的新对象。对象创建计数=1。 第2行创建值为“GFT”并引用“str2”的新对象。对象创建计数=2。 第3行创建新引用“

  • 问题内容: 就像是 这是我想象的格式,但事实并非如此。什么会退回到对象的父级? 问题答案: JavaScript本身不提供此功能。而且我怀疑您是否可以创建这种类型的功能。例如: 鲍比属于谁?

  • 我试图获得对创建java的GoogleMap对象的引用,但我不知道如何获得这个引用。