EJB's Java EntityManager не обновляет данные от Потребителя.
Потребитель входит в магазин, покупает некоторый материал и хочет посмотреть на свою историю покупок. Все отображено, но его последняя покупка. Если он выходит и заходит, это показывает.
Я использовал JPA для сохранения, покупает/купит (которые отображаются на Потребителе) к DB. Кажется, что покупки от этой сессии не могут быть обнаружены.
Код:
public Buys buyItem(Consumer c, int amount) {
Buys b = new Buys();
b.setConsumerId(c);
b.setContent("DVD");
b.setPrice(amount);
em.persist(b);
em.flush();
return b;
}
public Collection getAllBuysFromUser(Consumer consumer) {
Collection<Buys> collection = consumer.getBuysCollection();
return collection;
}
На помощь!? Сброс не добивается цели...
Кажется, между Customer
и Buys
существует двунаправленная связь "один ко многим", но я не вижу, где вы добавляете экземпляр Buys
в buysCollection
на стороне Customer
. Я ожидал увидеть что-то вроде этого:
public Buys buyItem(Consumer c, int amount) {
Buys b = new Buys();
b.setConsumerId(c);
b.setContent("DVD");
b.setPrice(amount);
c.getBuysCollection().add(b);
em.persist(b);
em.flush();
return b;
}
И убедитесь, что вы реализуете равняется
(и hashCode
) правильно .
Предлагаю проверить 1.2.6. Рабочие двунаправленные ссылки (и для добавления защитных методов управления ссылками, как предлагается).