ee勉強中でjpaで実験しててわからなくなりました
jpa(eclipselink)で

Entity e = new Entity();
e.setId(1);

transaction.begin();
em.persist(e);
e.setId(2);
transaction.commit();

em.find(Entity.class,1).getId();//2
em.find(Entity.class,2).getId();//2

となるのですが動きがわかりません。
em.peraist(e)でem上でid1エンティティが作成されて、その後setid(2)でeのidを2にすると、em上のエンティティもeを参照している?ので2になってコミットされる。
ところがem.findで第2引数に1を渡すとid2のエンティティが取得されます。
どういう動きなんでしょうか。
ご教授願います。