В этом проекте у меня есть следующие сущности:
- Уведомление: сущность для других сущностей уведомлений, наследуемых от
- Сообщение
Сущностис таким расширением Notification получают свои таблицы, а таблица для сущности Message - нет.
Класс уведомления:
@Data
@Entity
@NoArgsConstructor
@EqualsAndHashCode(of = "id")
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public abstract class Notification {
@Id
@GeneratedValue(strategy = GenerationType.TABLE)
protected long id;
// ... attributes
@OneToMany(mappedBy = "notification")
protected List<Message> messages;
}
Класс сообщения:
@Data
@Entity
@NoArgsConstructor
@EqualsAndHashCode(of = "id")
public class Message {
@Id
@GeneratedValue
private long id;
// ... attributes
@JsonIgnore
@ManyToOne
private Notification notification;
private boolean read;
}
application.yaml
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
jpa:
hibernate:
naming:
implicit-strategy: org.hibernate.boot.model.naming.ImplicitNamingStrategyComponentPathImpl
physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
use-new-id-generator-mappings: true
application-dev.yaml - этот профиль активен
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3308/db
username: dev
password: dev
jpa:
hibernate:
ddl-auto: create
show-sql: true
generate-ddl: true