【问题标题】:@OrderColumn error :"null index column for collection"@OrderColumn 错误:“集合的空索引列”
【发布时间】:2013-10-29 13:49:40
【问题描述】:

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

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

感谢您的帮助

【问题讨论】:

    标签: hibernate jpa annotations


    【解决方案1】:

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

    我需要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);
    }
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-13
      相关资源
      最近更新 更多