你好,我有问题。我的(我猜的)持久层正在缓存我的结果,所以当我从我的应用程序外部更新数据库时,数据仍然是陈旧的。
但是,它只缓存了一半的时间,我希望这是有道理的,
我有一堂课
@Entity
@Table(name = "PROVINCE")
public class Province implements Serializable {
@Id
@GeneratedValue
int id;
String provinceName;
String provinceMoto;
Buildings buildings;
Units units;
Person person;
.... etc
现在,如果我更新任何不是对类对象的引用的数据,例如“provincename”,那么数据在我的应用程序中就可以了,并且会立即更新。但是,像“建筑物”这样的内部对象没有,我无法弄清楚如何,如果我像重新部署我的应用程序一样进行硬刷新,那么数据是新鲜的。
我从这里的数据库中获取我的省份:
Query query = manager.createQuery("select p from Province p where p.person = :query");
query.setHint("toplink.refresh", "true");
query.setParameter("query", p);
province = (Province) query.getSingleResult();
那么我如何去强制它也使该类的内部对象,即“建筑物”“人”也更新。
我的持久层是 toplink 的必需品,我修复了我之前没有数据更新的问题。以及这里的第一篇文章(这是另一个堆栈溢出页面)
谢谢你的帮助。我希望我能很好地解释我的问题
[编辑:就像我没有使用这个框架一样,加入数据库中的表并将数据重新填充到新变量中会更容易,但我没有]