我对一些简单的例子感到困惑,我正在寻找Eclipselink和持久化对象。对此非常陌生。在什么时候创建和改变对象以保存在数据库中是否重要?例如是否所有与对象相关的工作都必须在em.getTransaction()之后完成.begin();叫做?或者你可以用那个物体做你需要的东西,然后开始,坚持,关闭?
我在Tomcat中使用这个例子。非jta RESOURCE_LOCAL
以下问题的差异:
EntityManagerFactory factory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME);
EntityManager em = factory.createEntityManager();
// Creating and mutating object BEFORE begin() is called
Todo todo = new Todo();
todo.setSummary("sum");
todo.setDescription("desc");
// create new todo
em.getTransaction().begin();
em.persist(todo);
em.getTransaction().commit();
Vs的
EntityManagerFactory factory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME);
EntityManager em = factory.createEntityManager();
em.getTransaction().begin();
// Creating and mutating object AFTER begin() is called
Todo todo = new Todo();
todo.setSummary("sum");
todo.setDescription("desc");
em.persist(todo);
em.getTransaction().commit();
答案 0 :(得分:0)
创建对象时没有区别。开始之后或开始之前。
答案 1 :(得分:0)
实际上没有区别。
因为事务只处理保存在持久化实体的数据库中(实体是一个java对象:在你的情况下为todo)。
你对实体做的最后一件事就是在数据库中刷新它(使用commit()
)