У меня есть реляционная база данных с нормализованной формой моих данных, но мой API должен будет получить информацию денормализованным способом, каков правильный способ справиться с этим? Это вопрос создания новой конечной точки с денормализованными полями?Опубликовать реляционные данные, Spring JPA REST
Как бы я отделил это от базы данных, чтобы Spring Boot не создавал для меня новую таблицу?
К примеру, здесь (некоторые) мои таблицы:
@Entity
public class TestCase {
@Id @GeneratedValue(strategy = GenerationType.AUTO)
private long id;
private String name;
private String description;
}
@Entity
public class TestRun {
@Id @GeneratedValue(strategy = GenerationType.AUTO)
private long id;
private Boolean result;
private String username;
@OneToOne
private TestData testData;
@ManyToOne
private TestCase testCase;
}
@Entity
public class TestData {
@Id @GeneratedValue(strategy = GenerationType.AUTO)
private long id;
private int count;
@ManyToOne
private RecordType recordType;
}
Я хочу создать API конечной точку, которая будет создавать новые записи в TestRun и Testdata в то же время, в то время как ссылки на существующие записи в TestCase и RecordType.
Как это делается?
Полный ответ должен показать:
- Какого формата данные будут принимать, когда его отправили на сервер
- Какого компонента будет обрабатывать этот пост
- Как этот компонент будет обновлять различные Сущности
что вы имеете в виду с денормализованной? – cralfaro
Когда я отправляю данные в свой API, я хочу отправить все поля, показанные выше, как один запрос. Но я хочу, чтобы этот запрос разбился и поместился в нужные таблицы. – clickcell
вы можете отправить уникальный запрос с двумя объектами, и запрос будет читать их как 2 объекта, затем вы можете обработать их по своему усмотрению и сохранить сначала один в одну таблицу, а затем другую или любую другую, что вам нужно. Также, если вы добавите cascadeType = PERSIST в свои отношения, сохраняя только родительский объект, все отношения будут сохранены. – cralfaro