【发布时间】:2016-12-28 19:11:13
【问题描述】:
我在 person 类和 car 类之间有一对多的关系。一个人可以拥有多辆汽车,反之亦然。我正在使用 RESTful API 来发布数据。我的注释和 Get 服务工作正常,但每当我尝试插入新数据时,我的 post 服务都会抛出“java.sql.SQLIntegrityConstraintViolationException: ORA-01400: cannot insert NULL" error。子表 foreign key 被插入为 null。
这是我的代码的一部分。
Person.java
private List<Car> cars = new ArrayList<Car>();
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="person")
@JsonManagedReference
public List<Car> getCars() {
return cars;
}
汽车.java
private Person person;
@ManyToOne
@JoinColumn(name = "PERSON_ID", nullable = false, updatable = true, insertable = true)
@JsonBackReference
public Person getPerson() {
return person;
}
我的服务等级:
@POST
@Path("/PersonRegistration")
@Consumes(MediaType.APPLICATION_JSON)
public Response postPersonCars(Person person) throws Exception{
Session session = null;
ObjectMapper mapper = new ObjectMapper();
//Person per = new Person();
//Car cars = new Car();
try{
session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
//per.setCars(person.getCars());
session.save(person);
session.getTransaction().commit();
}catch(Exception e){
e.printStackTrace();
throw e;
}finally{
if(null != session){
session.close();
}
}
return Response.status(201).entity(mapper.writeValueAsString(person)).build();
}
【问题讨论】:
标签: java hibernate rest jakarta-ee http-post