EntityManager не обновляет на сбросе ()

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;
}

На помощь!? Сброс не добивается цели...

1
задан Matt Ball 2 June 2010 в 15:03
поделиться

1 ответ

Кажется, между 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. Рабочие двунаправленные ссылки (и для добавления защитных методов управления ссылками, как предлагается).

2
ответ дан 3 September 2019 в 00:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: