1

我有一个实体,我有一个列表:

@OneToMany(mappedBy = "wycenioneAuta", cascade = {CascadeType.DETACH, CascadeType.MERGE,
            CascadeType.PERSIST, CascadeType.REFRESH}, fetch = FetchType.EAGER)
    @OrderColumn(name = "photoId", nullable = false)
    public List<ImageInfo> getPhoto() {
        return photo;
    }

但是当我添加照片时,数据库条目在“photoId”中有空值,这会导致错误"org.hibernate.HibernateException: null index column for collection: "

谢谢你的帮助

4

1 回答 1

2

问题还没有解决,但是我需要做一些事情来进一步推动这个项目,所以我想和大家分享一下我是如何摆脱这个问题的。

我需要有List而不是Set,所以我将注释从 getter 移到了字段声明,添加了注释@Access(AccessType.FIELD),所以我的代码现在看起来像这样:

@OneToMany(mappedBy = "wycenioneAuta", cascade = {CascadeType.DETACH, CascadeType.MERGE,
            CascadeType.PERSIST, CascadeType.REFRESH}, fetch = FetchType.EAGER)
    @Access(AccessType.FIELD)
    private Set<ImageInfo> zdjecia = new LinkedHashSet<>();

感谢 @Access 注释,我现在可以将 setter 和 getter 设置为List,它看起来像这样:

public List<ImageInfo> getZdjecia() {
    return new LinkedList<>(zdjecia);
}

public void setZdjecia(List<ImageInfo> zdjecia) {
    this.zdjecia = new LinkedHashSet<>(zdjecia);
}

我希望这会帮助别人,因为它帮助了我。这不完全是我想要的,但它有效,所以我认为它很重要:)

于 2013-10-30T19:45:02.747 回答