- 创建一个EntityManager实例(我们称其为“ em”),除非您已经有一个活动实例
- 创建一个新交易(我们称之为“ tx”)
- 调用em.find(Object pk)
- 致电tx.begin()
- 如果find()返回了非null的实体引用,则需要进行更新。将您的更改应用于返回的实体,然后调用em.merge(对象实体)。
- 如果find()返回空引用,则该PK在数据库中不存在。创建一个新实体,然后调用em.persist(Object newEntity)。
- 呼叫em.flush()
- 致电tx.commit()
- 根据您的方法签名返回您的实体引用。



