Java 休眠将新对象附加到会话,但不实际保存它们
我想获得以下功能,我不确定是否休眠Java 休眠将新对象附加到会话,但不实际保存它们,java,hibernate,session,Java,Hibernate,Session,我想获得以下功能,我不确定是否休眠 MyEntity e = new MyEntity("xxx"); Session session = sessionFactory.openSession(); MyEntity e2 = new MyEntity2(); e2.setName("This will be saved"); session.beginTransaction(); session.save(e); // Well I do not want to save bu
MyEntity e = new MyEntity("xxx");
Session session = sessionFactory.openSession();
MyEntity e2 = new MyEntity2();
e2.setName("This will be saved");
session.beginTransaction();
session.save(e); // Well I do not want to save but only want to attach to session
e.setName("yyy");
// I want to Use object "e" in memory only.
session.evict(e);
session.getTransaction().commit();
session.close();
现在你们可以看到,我想保存一些对象,但在这种情况下,不是一个特定的对象“e”。我知道这对现有对象是可能的,但不确定是否可以对新创建的对象执行此操作。刚刚查看了hibernate上的文档,似乎持久化就是答案()。调用save(),persist()有什么意义或者,如果您不希望该对象持久化,则可以使用任何其他方法将该对象附加到会话?我希望它在内存中持久化,但不实际保存它,因为我得到的旧应用程序会在大型事务结束时删除所有这些记录。我知道这很奇怪,但正如我所说,这是一个遗留应用程序。任何想法都是受欢迎的。在记忆中坚持并不意味着什么
newmyentity()
构造内存中的对象。您不需要Hibernate会话就可以在内存中拥有对象。是的,确实如此,但是在这段遗留代码中,我看到该对象在许多地方被使用,并通过Hibernate加载。我们可以使用threadlocal或类似的东西,或者在不更改现有代码的情况下使用hibernate来提供我们需要的东西。