У меня есть база данных с двумя сущностями ( Продукт и Обратная связь ). Обратная связь имеет единственный внешний ключ, который относится к продукту, первичный ключ которого является целым числом. Поэтому они имеют отношение один к одному .
Я хочу добавить новую запись Feedback в базу данных с моим веб-приложением. Для этого я пытаюсь выполнить PUT-запрос к моему Spring-серверу из моего Angular клиентского приложения.
У клиента есть объект класса Feedback
со следующими атрибутами (содержимое Feedback.ts
)
export class Feedback {
constructor(
public productId: number,
public score: number,
public preferred: boolean,
public textNote: string
) {
}
}
Класс Feedback.java
на стороне сервера:
@Entity
@Table(name = "feedback")
public class Feedback implements Serializable {
@Id
@JoinColumn(name = "product", unique = true)
@OneToOne(cascade = CascadeType.ALL)
private Product product;
@Column(name = "score")
private double score;
@Column(name = "preferred")
private boolean preferred;
@Column(name = "textnote")
private String textNote;
// ... getters, setters, constructor
}
Как видите, существует несоответствующий атрибут: productId
is number
, а product
класса Product
. Как я могу дать приложению Spring правильный объект для save
его в базе данных?
Я пытаюсь следовать рекомендациям Hibernate и, насколько я понял, это было бы плохой практикой для использования атрибут в java классе типа int
вместо Product
. Что мне делать?