У меня есть следующая сущность, которая является базовой сущностью для всех остальных сущностей в приложении:
@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;
}
Моя цель состоит в том, чтобы иметь две таблицы - images и files так, чтобы эти две таблицы были общими для всех сущностей, которые расширяют BaseEntity.Я понимаю, что для этого все сущности, которые расширяют BaseEntity, должны иметь одну общую последовательность идентификаторов.
И тогда у меня есть две сущности, которые являются подтипами 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;
}
Теперь, когда яset spring.jpa.hibernate.ddl-auto = create-drop
, hibernate генерирует для меня следующие таблицы:
news, equipment, news_images, news_files, equipment_images, equipment_files
Однако я хотел бы иметь вместо четырех таблиц:
news, equipment, files, images
Я был бы очень признателен за любую помощь,
Спасибо