Сохранение двух сущностей одновременно - PullRequest
0 голосов
/ 27 сентября 2011

Я боролся с этим некоторое время и не могу решить проблему.У меня есть постоянная сущность с именем SiteVisit, которая связана со штатом многими-многими через промежуточную таблицу SiteVistHasStaff.

Использование Netbeans, CRUD и JSf Я смог заполнить эти таблицы (используя три страницы CRUD) значимыми данными и создал запросы, которые отображают посещения сайта сотрудниками и т. Д.

Однакодля улучшения пользовательского интерфейса я пытаюсь создать страницу, которая позволяет бронировать SiteVisit и выбирать сотрудников, которые будут присутствовать, а затем создавать новые записи в таблицах SiteVist и SiteVisitHasStaff при отправке страницы / формы.

Это кажется такой простой задачей в реальном мире, но я не могу понять, какие шаги мне нужно предпринять для ее достижения.Мне удалось получить данные на той же странице в selectManyMenu, но затем произошла ошибка с постоянными ошибками при попытке зафиксировать мой выбор (посещение сайта создается без списка сотрудников, но запись StaffVisitHasStaff завершается неудачно, так как для SiteVisit нет значения)поле id)

Могу ли я использовать методы создания CRUD, сгенерированные NetBeans, что похоже на правильный путь, поскольку я повторно использую код, но я думаю, что нет, поскольку они используют разные EntityManager и незнать друг о друге.Нужно ли создавать новый компонент (я пробовал это безуспешно) с новым фасадом, отвечающим требованиям?Или это как-то связано с моими определениями сущностей.

@OneToMany(cascade = CascadeType.ALL, mappedBy = "siteVisitIdsiteVisit")
private List<SiteVisitHasStaFF> siteVisitHasStaffList;

@JoinColumn(name = "site_visit_idsite_visit", referencedColumnName = "idsite_visit")
@ManyToOne(optional = false)
private SiteVisit siteVisitIdsiteVisit;

Может ли кто-нибудь помочь или указать мне в направлении примера, который демонстрирует, как это сделать, я погуглил, прочитал и попробовал так много вещей, что я просто полностью запутался.Спасибо за любую помощь, которую вы можете предложить.

1 Ответ

1 голос
/ 27 сентября 2011

Ну, просто выстрел в темноте, я не настолько устойчив с Netbeans / CRUD / чем угодно, но в каком порядке вы сохраняете свои сущности и какую ошибку постоянства вы получаете точно?

КакНапомню, если у вас есть два разных менеджера сущностей, изначально они не знают, что сущности сохраняются другим.Кроме того, вам нужно что-то упорствовать, чтобы ссылаться на него.

Так что, если один EM что-то персистирует, сущность будет сопротивляться только в своем контексте персистентности, пока не будет зафиксирован каждый вариант (конец транзакции, сброс, ...).Другой EM не будет автоматически обнаруживать сущность, для этого объединяющиеся сущности .

Не знаю, что будет применимо в вашей ситуации, но я бы использовал один EM для всех операцийв одной области или объединить объекты, которые вы хотите использовать в другой EM.

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