У меня есть следующие данные в двух таблицах в моей базе данных (дополнительные столбцы опущены для ясности).В основном это представляет собой ориентированный граф с дочерними шагами, представленными в их собственной таблице.Внешние ключи размечены, как и ожидалось.
mysql> select * from template_step;
+----+-----------+
| id | step_name |
+----+-----------+
| 1 | Step 1 |
| 2 | Step 2 |
| 3 | Step 3 |
| 4 | Step 4 |
+----+-----------+
mysql> select * from next_steps;
+-----------------+--------------+
| current_step_id | next_step_id |
+-----------------+--------------+
| 1 | 2 |
| 1 | 3 |
| 3 | 4 |
+-----------------+--------------+
Затем у меня есть класс Entity, который представляет первую таблицу, и я пытаюсь выяснить правильную настройку JPA для представления дочерних шагов в виде списка вэтот класс.
@Entity
@Table(name = "template_step")
public class TemplateStepRecord {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="id")
private Long id;
@Column(name="step_name")
private String name;
@OneToMany
@JoinTable(name="next_steps", joinColumns={@JoinColumn(name="next_step_id", referencedColumnName="current_step_id")})
private List<TemplateStepRecord> children = new ArrayList<>();
}
Эти аннотации на children
явно неверны, так как я получаю сообщение об ошибке, подобное этому:
Unable to find column with logical name: current_step_id in org.hibernate.mapping.Table(template_step) and its related supertables and secondary tables
Я не уверен, что сюда поместитьили если к этому или к примечанию OneToMany
должны присутствовать какие-либо дополнительные аннотации.
Спасибо.