【发布时间】:2014-06-01 16:24:51
【问题描述】:
我正在使用 Hibernate 和 Spring/Spring MVC。 我有两个实体,AccommodationRequest 和 Restriction。 关系是AccommodationRequest可以有很多Restriction。
当我保存带有限制的住宿请求时,两个结果都保存到数据库中 但限制缺少外键/连接列(accommodationRequestId)。 我确信我必须缺少一些东西。任何帮助表示赞赏。
AccommodationRequest 已定义:
@Entity
public class AccommodationRequest {
....
@OneToMany(mappedBy="accommodationRequest",
targetEntity=Restriction.class,
fetch=FetchType.EAGER,
cascade=CascadeType.ALL)
private List<Restriction> restrictions;
public List<Restriction> getRestrictions(){
return restrictions;
}
public void setRestrictions(List<Restriction> restrictions){
this.restrictions = restrictions;
}
....
限制已定义:
@Entity
public class Restriction {
@Id
@GeneratedValue
private long id;
private String restriction;
@ManyToOne
@JoinColumn(name="accommodationRequestId")
private AccommodationRequest accommodationRequest;
public AccommodationRequest getAccommodationRequest() {
return accommodationRequest;
}
public void setAccommodationRequest(AccommodationRequest accommodationRequest) {
this.accommodationRequest = accommodationRequest;
}
下面是保存的代码:
Restriction restriction = new Restriction();
restriction.setRestriction("test restrcition 6");
List<Restriction> restrictions = new ArrayList<Restriction>();
restrictions.add(restriction);
long id = accommodationService.saveOrUpdate(accommodationRequest);
accommodationRequest.setRestrictions(restrictions);
accommodationService.saveOrUpdate(accommodationRequest);
【问题讨论】:
标签: spring hibernate spring-mvc