Java EJB的EntityManager不会更新来自Consumer的数据。
消费者登录商店,购买一些东西,并想看看他的购物历史。一切都显示,但他最后一次购买。如果他退出并进入,则显示。我已经使用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;
}
帮助!? Flush不会这样做......
答案 0 :(得分:2)
您似乎在Customer
和Buys
之间存在双向一对多关联,但我看不到您将Buys
实例添加到{{1}的位置在buysCollection
方面。我期待看到这样的事情:
Customer
并确保implement equals
(and hashCode
) properly。
我建议检查1.2.6. Working bi-directional links(并根据建议添加防御性链接管理方法)。