【问题标题】:Hibernate One To Many join column not Saving休眠一对多连接列不保存
【发布时间】: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


    【解决方案1】:

    您尚未将 AccommodationRequest 设置为 Restriction。

    Restriction restriction = new Restriction();
    restriction.setRestriction("test restrcition 6");
    restriction.setAccommodationRequest(accommodationRequest); // You have to do this
    List<Restriction> restrictions = new ArrayList<Restriction>();
    restrictions.add(restriction);
    long id = accommodationService.saveOrUpdate(accommodationRequest);
    accommodationRequest.setRestrictions(restrictions);
    accommodationService.saveOrUpdate(accommodationRequest);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-11
      • 2012-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-13
      • 2012-07-29
      • 1970-01-01
      相关资源
      最近更新 更多