[英]Hibernate - @OneToMany in @MappedSuperclass generates table for every child entity
我有以下實體,它是應用程序中所有其他實體的基礎實體:
@Audited
@Data
@MappedSuperclass
public abstract class BaseEntity {
public static final long UNSAVED = 0;
@Id
@GeneratedValue
private long id;
@OneToMany(cascade = CascadeType.ALL)
private List<Image> images;
@OneToMany(cascade = CascadeType.ALL)
private List<File> files;
}
我的目標是擁有兩個表- 圖像和文件,以便將這兩個表共享給所有擴展BaseEntity的實體。 我確實意識到,所有擴展BaseEntity的實體都應具有一個共享的ID序列。
然后,我有兩個實體,它們是BaseEntity的子類型:
@Entity
@Table
@Data
@EqualsAndHashCode(callSuper = false)
public class Equipment extends BaseEntity {
private String name;
@Enumerated(EnumType.STRING)
private EquipmentType type;
private String model;
private String serial;
private Boolean status;
}
@Entity
@Table
@Data
@EqualsAndHashCode(callSuper = false)
public class News extends BaseEntity {
private String title;
private String summary;
private String content;
}
現在,當我設置spring.jpa.hibernate.ddl-auto = create-drop
,hibernate會為我生成以下表:
news, equipment, news_images, news_files, equipment_images, equipment_files
但是,我想有四個表:
news, equipment, files, images
我真的很感謝您的幫助,
謝謝
嘗試將添加到@OneToMany
列表中的@JoinColumn(name="ID_SOMETHING")
。 如果未指定@JoinColumn
則這兩部分列名稱news_images
是Hibernate創建的news_images
表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.