Как сохранить экземпляр объекта как поле сущности EJB3? - PullRequest
1 голос
/ 11 февраля 2009

У меня есть промо-объект сущности, который имеет 3 простых поля (идентификатор, имя, описание), и все 3 будут отображены в БД. Все идет нормально. Проблема заключается в 4-м поле, ruleModel, которое является экземпляром RuleModel и при создании во время выполнения оно будет содержать экземпляры объектов десятка других классов. Я не хочу отображать RuleModel в таблицу БД, потому что это много дополнительной работы, а также ненужной. Я просто хочу сохранить экземпляр объекта ruleModel в БД, а затем иметь возможность загрузить ruleModel из БД и восстановить экземпляр объекта в памяти.

Код:

@Entity  
public class Promotion {  
    @Id  
    @GeneratedValue  
    private Long id;  

    private String name;  
    private String description;  

    private RuleModel ruleModel;  

}

Ответы [ 2 ]

0 голосов
/ 08 октября 2009

Если я правильно понимаю, вы пытаетесь сериализовать экземпляр RuleModel , который содержит ссылки на многие другие экземпляры, и при десериализации вы примете, что все ссылки ruleModel ранее удерживаемые будут потеряны. Если это ваша цель, вам нужно сделать две вещи:

  1. Отметьте любое поле в RuleModel с переходным процессом, который
  2. Annotate RuleModel с JPA @ Embeddable аннотация
  3. Аннотируйте поле ruleModel в Акции с @ Embedded

Хотя этот экземпляр не будет сохранен в экземпляре ruleModel в одном столбце, он будет сохранен в нескольких столбцах одной и той же таблицы, используемой Promotion . Он также восстановит ruleModel по вашему желанию.

0 голосов
/ 12 февраля 2009

Если вы сделаете класс Rule Model реализующим интерфейс Serializeable, то вы сможете добавить переменную RuleModel в свой класс Promotion. Это потребует добавления нового столбца в таблицу рекламных акций. Когда вы сохраните класс Promotion, в новом столбце будет сохранен seraralized экземпляр экземпляра класса RuleModel.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...