我知道有很多关于这些术语的帖子,但我的问题略有不同,我认为可以通过设计解决。
我有3个实体:
他们受到这样的约束:
AbstractFileEntity
@Data
@MappedSuperclass
public abstract class AbstractFileEntity {
@Id
@Column(name = "ID", updatable = false, nullable = false)
@GeneratedValue
protected UUID id;
}
FileEntity
@Data
@Entity
@Table(name = "T_FILE")
public class FileEntity
extends AbstractFileEntity
implements Serializable {
@ManyToOne
@JoinColumn(name="id_multipage_file")
private MultipageFileEntity multipageFile;
//annoying fields.....
}
MultipageFileEntity
@Data
@Entity
@Table(name = "T_MULTIPAGE_FILE")
public class MultipageFileEntity
extends AbstractFileEntity
implements Serializable {
@OneToMany(mappedBy = "multipageFile", cascade = CascadeType.REMOVE)
private Map<Integer, FileEntity> files;
}
所以这里我的Multipage基本上就是File的集合。但是我需要它们适合同一个Object系列,因为它们可以存储在Collection对象中。
问题:
@MappedSuperclass
时,我会落入使用@OneToMany或@ManyToMany定位未映射的类:错误。@Entity
&amp; @Inheritance(strategy = InheritanceType.JOINED)
annots,我有一个引用id循环,因为在同一个表中我们有一个自己的集合 - &gt;无限的自身收藏。我可能只创建一个实体文件,并在其上添加页码和MultipageFile ID,并将这些文件与多页文件区分开来;这就是全部。
对此有何见解?非常感谢!