#java #jpa #persistence #entity
#java #jpa #сохранение #сущность
Вопрос:
Если у меня есть объект, такой как следующий:
@Entity
public class Customer {
private Address address;
}
И адрес также является сущностью:
@Entity
public class Address {...}
Сохраняется ли у клиента, в свою очередь, его адрес, содержащийся в нем? Или это вообще невозможно? Идея заключалась в том, чтобы иметь основную сущность, состоящую из ее полей, некоторые из которых сами являются сущностями, которые будут храниться в отдельных таблицах. Некоторые из полей Customer уникальны тем, что мне также нужна таблица Customer для этих данных. Если я просто не пропустил это, я не смог найти этот ответ. Это было то, о чем мне было просто любопытно, и в настоящее время я не нахожусь на компьютере, где я могу это попробовать, поэтому я хотел сначала спросить.
Заранее спасибо.
Комментарии:
1. Конечно, это возможно. Вы только что заново изобрели ассоциацию OneToOne (или ManyToOne). Это, конечно, описано в любом руководстве / книге о JPA.
Ответ №1:
Это возможно и основы JPA. Но вы должны определить ассоциации между объектами в ваших классах сущностей.
Я рекомендую прочитать хороший учебник по этой теме, например, учебник Java EE6.
Ответ №2:
У вас есть 2 варианта в зависимости от вашей модели домена:
-
удаление @Entity из адреса и добавление к нему @Embeddable
-
сопоставление адреса в Person с помощью: @OneToOne(каскад = {CascadeType.СОХРАНЯЕТСЯ})