
如下面NikosParaskevopoulos的回答所述,JPA和Java对象要求您设置关系的双方。只要设置了拥有方,数据库就会随着关系的变化而更新,但是非拥有方仅在手动设置数据库或强制刷新或重新加载数据库时才会反映数据库中的内容。从单独的上下文中读取实体不会强制重新加载,因为您的JPA提供程序可以使用二级缓存。这是Eclipselink中的默认设置。您的其他读取是从共享缓存中返回A,与原始对象一样,它没有将B添加到其B列表中。
最简单的解决方案是将B预先设置为A的列表。但是,这里的其他选项是使用em.refresh(a)或查询提示来强制A的刷新,或者禁用共享的缓存。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)