Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.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、Jersey、Hibernate—如何通过rest调用传递定义为OneToMany映射的实体?_Java_Hibernate_Jersey_Dropwizard - Fatal编程技术网

Java、Jersey、Hibernate—如何通过rest调用传递定义为OneToMany映射的实体?

Java、Jersey、Hibernate—如何通过rest调用传递定义为OneToMany映射的实体?,java,hibernate,jersey,dropwizard,Java,Hibernate,Jersey,Dropwizard,我有两个实体——公司和公司办公室。Company与CompanyOffice有一个one-omany映射,CompanyOffice与Company有一个manytone映射。 在创建新的公司办公室时,我应该能够在请求中提供公司id。 我正在使用Dropwizard框架和Hibernate ORM Company.java @Getter @Setter @Entity @Table(name = "Company") @JsonInclude(Include.NON_NULL) public

我有两个实体——公司和公司办公室。Company与CompanyOffice有一个one-omany映射,CompanyOffice与Company有一个manytone映射。 在创建新的公司办公室时,我应该能够在请求中提供公司id。 我正在使用Dropwizard框架和Hibernate ORM

Company.java

@Getter
@Setter
@Entity
@Table(name = "Company")
@JsonInclude(Include.NON_NULL)
public class Company {
@Id
@Column(name = "id")
@GenericGenerator(name = "generator", strategy = "increment")
@GeneratedValue(generator = "generator")
private long id;

@NotEmpty
@Column(name = "company_name")
@JsonProperty("company_name")
private String companyName;

@JsonIgnore
@JsonBackReference
@OneToMany(targetEntity=CompanyOffice.class, mappedBy = "company", fetch = FetchType.LAZY, cascade = CascadeType.ALL)
private Set<CompanyOffice> companyOffices;

@JsonCreator
public Company(@JsonProperty("company_name") String companyName) {
    this.companyName = companyName;
}
}
}

CompanyOfficeResource.java

@POST
@Timed
@Path("add")
@UnitOfWork
public Long addCompanyOffice(CompanyOffice companyOffice) {
    Company parentCompany = companyOffice.getCompany();
    String officeName = companyOffice.getOfficeName();
    CompanyOffice newCompanyOffice = companyOfficeDAO.createCompanyOffice(
            new CompanyOffice(officeName, parentCompany)
    );
    return newCompanyOffice.getId();
}
通过rest调用发送的JSON请求: { “公司id”:1, “办公室名称”:“PW” }

数据库中存在ID为1的公司。我应该如何处理这件事?正确的方法是什么

为了进一步简化,
在创建对象B的新实体的请求中,传递对象A的实体的最佳方式是什么?对象A与对象B有一对一的关系,对象B与对象A有多对一的关系。

请解释下一票是为了什么。我还没有弄清楚这一点。任何人如果你需要更多这方面的信息,请告诉我。
@POST
@Timed
@Path("add")
@UnitOfWork
public Long addCompanyOffice(CompanyOffice companyOffice) {
    Company parentCompany = companyOffice.getCompany();
    String officeName = companyOffice.getOfficeName();
    CompanyOffice newCompanyOffice = companyOfficeDAO.createCompanyOffice(
            new CompanyOffice(officeName, parentCompany)
    );
    return newCompanyOffice.getId();
}