如何使用 resteasy 将 JSON 从角度 5 POST 调用正确映射到 java 实体?



我有来自angular 5组件的以下代码:

export class TripsComponent implements OnInit {
...
...
addTrip() {    
let newTrip = new Trip(this.new_trip_name,
this.new_trip_description, this.company);
this.tripService.addTrip(newTrip).toPromise();
}
//The company object is initialize inside ngOnInit()

行程服务如下所示:

addTrip(tripTemp: Trip): Observable<any> {
let tripObj = {
trip: tripTemp
};
console.log('Adding trip ' + JSON.stringify(tripObj));
return this.http.post(`${this.baseUrl}/Trips/Trip`, JSON.stringify(tripObj), httpOptions);
}

Java rest api 看起来像这样:

@POST
@Path("Trip")
@Produces("application/json")
@Consumes("application/json")
public Response addTrip(Trip trip) {    
tripDao.addTrip(trip);
return Response.ok().entity("Trip added successfully").build();
}

行程中的公司对象被注释为 XmlTransit(不确定这是否会导致问题(:

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "company_id", nullable = false)
@XmlTransient
public Company getCompany() {
return this.company;
}

问题是公司对象以 NULL 的形式出现,并且它是必需的 字段以保存行程对象。知道如何允许自动转换 对于这个内在对象 ? 提前谢谢。

我不得不删除@XmlTransient。

最新更新