Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将JSON转换为具有多通关系的POJO?_Java_Hibernate_Spring Data Jpa - Fatal编程技术网

Java 如何将JSON转换为具有多通关系的POJO?

Java 如何将JSON转换为具有多通关系的POJO?,java,hibernate,spring-data-jpa,Java,Hibernate,Spring Data Jpa,我有一个实体,它与另一个实体具有双向@OneToMany关系。下面是它的外观: @Entity @Table public class Foo { @Id @GeneratedValue Integer foo_id; @OneToMany @JoinColumn(name = "FOO_ID") Set<Bar> bars; } @Entity @Table public class Bar { @Id @Gene

我有一个实体,它与另一个实体具有双向
@OneToMany
关系。下面是它的外观:

@Entity
@Table
public class Foo {
    @Id
    @GeneratedValue
    Integer foo_id;

    @OneToMany
    @JoinColumn(name = "FOO_ID")
    Set<Bar> bars;
}

@Entity
@Table
public class Bar {
    @Id
    @GeneratedValue
    Integer bar_id;

    @ManyToOne
    @JoinColumn(name = "FOO_ID")
    Foo foo;
}
我需要以某种方式设置
Foo
变量


如果我需要对每个
使用单独的
save()
函数调用,那么有没有办法启动事务,使所有这些插入操作都是原子的?

首先,您应该像这样映射关系:

@OneToMany(mappedBy="foo", cascade=CascadeType.PERSIST)
Set<Bar> bars;
Foo foo = new Foo();
Set<Bar> bars = new HashSet<>();
Bar bar = new Bar();
bar.setFoo(foo);
bars.add(bar);
foo.setBars(bars);
fooRepositoy.save(foo);
@OneToMany(mappedBy=“foo”,cascade=CascadeType.PERSIST)
设置横杆;
级联类型将取决于您的需要。有关级联类型的更多信息,请阅读本手册

然后,您可以像这样保存Foo实体:

@OneToMany(mappedBy="foo", cascade=CascadeType.PERSIST)
Set<Bar> bars;
Foo foo = new Foo();
Set<Bar> bars = new HashSet<>();
Bar bar = new Bar();
bar.setFoo(foo);
bars.add(bar);
foo.setBars(bars);
fooRepositoy.save(foo);
Foo-Foo=new-Foo();
设置条=新的HashSet();
条形=新条形();
巴.塞富(富);
条。添加(条);
foo.立根杆(杆);
fooRepositoy.save(foo);

首先,您应该像这样映射关系:

@OneToMany(mappedBy="foo", cascade=CascadeType.PERSIST)
Set<Bar> bars;
Foo foo = new Foo();
Set<Bar> bars = new HashSet<>();
Bar bar = new Bar();
bar.setFoo(foo);
bars.add(bar);
foo.setBars(bars);
fooRepositoy.save(foo);
@OneToMany(mappedBy=“foo”,cascade=CascadeType.PERSIST)
设置横杆;
级联类型将取决于您的需要。有关级联类型的更多信息,请阅读本手册

然后,您可以像这样保存Foo实体:

@OneToMany(mappedBy="foo", cascade=CascadeType.PERSIST)
Set<Bar> bars;
Foo foo = new Foo();
Set<Bar> bars = new HashSet<>();
Bar bar = new Bar();
bar.setFoo(foo);
bars.add(bar);
foo.setBars(bars);
fooRepositoy.save(foo);
Foo-Foo=new-Foo();
设置条=新的HashSet();
条形=新条形();
巴.塞富(富);
条。添加(条);
foo.立根杆(杆);
fooRepositoy.save(foo);