首页 > 解决方案 > “嵌入式”属性类型不应是地图

问题描述

我有一个 @Embeddable 类型对象:

@Embeddable
public class FileData {

    /* --- Members --- */

    @Column(name = "path")
    private String path;

    @Column(name = "type")
    private String type;

}

我还有另一个可以容纳它的物体。

@Entity(name = "EmbeddingObject")
@Table(name = "embeddingObjcetTable")
public class EmbeddingObject {

    @ManyToMany(fetch = FetchType.EAGER)
    @JoinTable(name = "embeddingObjcetTable_files",
        joinColumns = {@JoinColumn(name = "embedding_id", referencedColumnName = "id")},
    private Set<File> files;


    @ElementCollection(fetch = FetchType.EAGER)
    @Column(name = "embedding_id")
    @CollectionTable(name="embeddingObjcetTable_fileData",
        joinColumns = {@JoinColumn(name = "embedding_id", referencedColumnName = "id")}))
    @MapKeyJoinColumn(name = "file_id")
    private Map<File, FileData> fileDataMapping;  <-- HERE
}

我得到的错误是:

“嵌入”属性类型不应是地图 唯一的嵌入对象是 FileData。

有谁知道我做错了什么?

我想也许这只是一个警告,但构建实际上失败了。

谢谢!

标签: javaspringhibernatejpa

解决方案


推荐阅读