<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
<script>
$(document).ready(function() {
bgAudio = document.getElementById("myAudio");
bgAudio.volume = 0.3;
bgAudio.controls = true;
bgAudio.loop = true;
bgAudio.autoplay = true;
bgAudio.src = "bg1.mp3";
bgAudio.src = "bg2.mp3";
bgAudio.play();
});
</script>
使用saveOrUpdate方法保存新对象时会保存对象,但下次我在分离模式下修改此对象并通过saveOrUpdate方法保存时,它始终存在于while循环中,永远不会出现在循环之外。请帮助我,我是JPA的新手,我正在将我的项目从Hibernate转换为JPA。
答案 0 :(得分:0)
1)看起来你在JPA中遇到Second-Level Cache的问题。尝试检查它(我在你的代码中添加了带注释的新行):
public static MyMessage saveOrUpdate(MyMessage msg) {
...
EntityManager em1 = factory.createEntityManager();
Cache cache = em1.getEntityManagerFactory().getCache(); // get cache
cache.evictAll(); // remove all Entity from Cache
MyMessage msss= em1.find(MyMessage.class, m.getId());
System.out.println(msss);// prints null
return m;
}
OR
2)尝试使用
强制冲洗 em.flush();
EntityManager em1 = factory.createEntityManager();
MyMessage msss= em1.find(MyMessage.class, m.getId());
System.out.println(msss);// prints null
return m;
3)尝试将merged更改为persist,而不是m = em.merge(msg);
使用em.persist(msg); m = msg;