M2MEntityE e2 = new M2MEntityE();
e2.setId(2);
e2.setName("DEF");
em.persist(e2);
M2MEntityF f1 = new M2MEntityF();
f1.setId(10);
em.persist(f1);
M2MEntityF f2 = new M2MEntityF();
f2.setId(20);
em.persist(f2);
e1.getEntityF().put(f1.getId(), f1);
e1.getEntityF().put(f2.getId(), f2);
e2.getEntityF().put(f1.getId(), f1);
e2.getEntityF().put(f2.getId(), f2);
f1.getEntityE().put(e1.getName(), e1);
f1.getEntityE().put(e2.getName(), e2);
f2.getEntityE().put(e1.getName(), e1);
f2.getEntityE().put(e2.getName(), e2);
em.getTransaction().commit();
em.close();
em = emf.createEntityManager();
try {
M2MEntityE e1a = em.find(M2MEntityE.class, 1);
Map entityf1 = e1a.getEntityF();
M2MEntityE e2a = em.find(M2MEntityE.class, 2);
Map entityf2 = e2a.getEntityF();
M2MEntityF f1a = em.find(M2MEntityF.class, 10);
Map entitye1 = f1a.getEntityE();
M2MEntityF f2a = em.find(M2MEntityF.class, 20);
Map entitye2 = f2a.getEntityE();
} catch (Exception e) {
fail("Fail to get a Map field when DataCache is on");
}
em.close();
}