Во-первых, я сожалею об этом вопросе, потому что я не знаю, какое ключевое слово использовать для поиска ответа. Спасибо, вы понимаете!
- У меня есть первая таблица
slave_table
, сущность, подобная этой:
@Entity
@Data
@Table(name = "slave_table", uniqueConstraints = {@UniqueConstraint(columnNames = "name")})
public class SlaveEntity implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@NotNull(groups = Update.class)
private Long id;
@NotBlank
@NotNull
@Column(name = "name")
private String name;
@Column(name = "tag")
private String tag = "default";
@Column(name = "idle")
private Boolean idle;
}
- И у меня есть вторая таблица
task_table
, сущность, подобная этой:
@Entity
@Data
@Table(name = "task_table")
public class TaskEntity implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@NotNull(groups = Update.class)
private Long id;
@NotBlank
@NotNull
@Column(name = "name")
private String name;
@NotNull
@Column(name = "qps")
private Long qps;
@Column(name = "status")
private Integer status;
@ManyToOne
private JobEntity job;
@OneToOne
private SlaveEntity slave;
- У меня есть третья таблица
job_table
, сущность, подобная этой:
@Entity
@Data
@Table(name = "job_table")
public class JobEntity implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@NotNull(groups = Update.class)
private Long id;
@NotBlank
@NotNull
@Column(name = "name")
private String name;
@Column(name = "status")
private Integer status = 0;
@OneToMany
private Set<SlaveEntity> slaves;
@JsonIgnore
@OneToMany
private Set<TaskEntity> tasks;
}
Они создадут job
, job_slave_tables
, job_task_tables
и task_table
MySQL таблиц.
В одно задание входит хотя бы одно задание, а в одном задании используется только один ведомый.
Вопрос:
Я не хочу task_table
таблицы, но мне нужно использовать сущность. Как?
Когда я создаю одно задание, я не хочу создавать таблицы job_slave_tables
и job_task_tables
, но хочу создать одну таблицу job_task_tables
, она включает все столбцы TaskEntity в соответствии с slave
имя, потому что одно задание включает в себя хотя бы одно задание, одно задание запускает только одно ведомое устройство. Как?
Большое спасибо !!!