@OrderColumn错误:“收集的空索引列”

时间:2013-10-29 13:49:40

标签: hibernate jpa annotations

我有一个实体,我有一个清单:

@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: "

感谢您的帮助

1 个答案:

答案 0 :(得分: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);
}

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