@Test
  @Priority(10)
  public void createData() {
    EntityManager em = getEntityManager();

    DoubleListJoinColumnBidirectionalRefEdEntity1 ed1_1 =
        new DoubleListJoinColumnBidirectionalRefEdEntity1("ed1_1", null);
    DoubleListJoinColumnBidirectionalRefEdEntity1 ed1_2 =
        new DoubleListJoinColumnBidirectionalRefEdEntity1("ed1_2", null);

    DoubleListJoinColumnBidirectionalRefEdEntity2 ed2_1 =
        new DoubleListJoinColumnBidirectionalRefEdEntity2("ed2_1", null);
    DoubleListJoinColumnBidirectionalRefEdEntity2 ed2_2 =
        new DoubleListJoinColumnBidirectionalRefEdEntity2("ed2_2", null);

    DoubleListJoinColumnBidirectionalRefIngEntity ing1 =
        new DoubleListJoinColumnBidirectionalRefIngEntity("coll1");
    DoubleListJoinColumnBidirectionalRefIngEntity ing2 =
        new DoubleListJoinColumnBidirectionalRefIngEntity("coll2");

    // Revision 1 (ing1: ed1_1, ed2_1, ing2: ed1_2, ed2_2)
    em.getTransaction().begin();

    ing1.getReferences1().add(ed1_1);
    ing1.getReferences2().add(ed2_1);

    ing2.getReferences1().add(ed1_2);
    ing2.getReferences2().add(ed2_2);

    em.persist(ed1_1);
    em.persist(ed1_2);
    em.persist(ed2_1);
    em.persist(ed2_2);
    em.persist(ing1);
    em.persist(ing2);

    em.getTransaction().commit();

    // Revision 2 (ing1: ed1_1, ed1_2, ed2_1, ed2_2)
    em.getTransaction().begin();

    ing1 = em.find(DoubleListJoinColumnBidirectionalRefIngEntity.class, ing1.getId());
    ing2 = em.find(DoubleListJoinColumnBidirectionalRefIngEntity.class, ing2.getId());
    ed1_1 = em.find(DoubleListJoinColumnBidirectionalRefEdEntity1.class, ed1_1.getId());
    ed1_2 = em.find(DoubleListJoinColumnBidirectionalRefEdEntity1.class, ed1_2.getId());
    ed2_1 = em.find(DoubleListJoinColumnBidirectionalRefEdEntity2.class, ed2_1.getId());
    ed2_2 = em.find(DoubleListJoinColumnBidirectionalRefEdEntity2.class, ed2_2.getId());

    ing2.getReferences1().clear();
    ing2.getReferences2().clear();

    ing1.getReferences1().add(ed1_2);
    ing1.getReferences2().add(ed2_2);

    em.getTransaction().commit();
    em.clear();

    // Revision 3 (ing1: ed1_1, ed1_2, ed2_1, ed2_2)
    em.getTransaction().begin();

    ing1 = em.find(DoubleListJoinColumnBidirectionalRefIngEntity.class, ing1.getId());
    ing2 = em.find(DoubleListJoinColumnBidirectionalRefIngEntity.class, ing2.getId());
    ed1_1 = em.find(DoubleListJoinColumnBidirectionalRefEdEntity1.class, ed1_1.getId());
    ed1_2 = em.find(DoubleListJoinColumnBidirectionalRefEdEntity1.class, ed1_2.getId());
    ed2_1 = em.find(DoubleListJoinColumnBidirectionalRefEdEntity2.class, ed2_1.getId());
    ed2_2 = em.find(DoubleListJoinColumnBidirectionalRefEdEntity2.class, ed2_2.getId());

    ed1_1.setData("ed1_1 bis");
    ed2_2.setData("ed2_2 bis");

    em.getTransaction().commit();
    em.clear();

    // Revision 4 (ing1: ed2_2, ing2: ed2_1, ed1_1, ed1_2)
    em.getTransaction().begin();

    ing1 = em.find(DoubleListJoinColumnBidirectionalRefIngEntity.class, ing1.getId());
    ing2 = em.find(DoubleListJoinColumnBidirectionalRefIngEntity.class, ing2.getId());
    ed1_1 = em.find(DoubleListJoinColumnBidirectionalRefEdEntity1.class, ed1_1.getId());
    ed1_2 = em.find(DoubleListJoinColumnBidirectionalRefEdEntity1.class, ed1_2.getId());
    ed2_1 = em.find(DoubleListJoinColumnBidirectionalRefEdEntity2.class, ed2_1.getId());
    ed2_2 = em.find(DoubleListJoinColumnBidirectionalRefEdEntity2.class, ed2_2.getId());

    ing1.getReferences1().clear();
    ing2.getReferences1().add(ed1_1);
    ing2.getReferences1().add(ed1_2);

    ing1.getReferences2().remove(ed2_1);
    ing2.getReferences2().add(ed2_1);

    em.getTransaction().commit();
    em.clear();

    //

    ing1_id = ing1.getId();
    ing2_id = ing2.getId();

    ed1_1_id = ed1_1.getId();
    ed1_2_id = ed1_2.getId();
    ed2_1_id = ed2_1.getId();
    ed2_2_id = ed2_2.getId();
  }
  @Test
  public void testHistoryOfEd1_2() {
    DoubleListJoinColumnBidirectionalRefIngEntity ing1 =
        getEntityManager().find(DoubleListJoinColumnBidirectionalRefIngEntity.class, ing1_id);
    DoubleListJoinColumnBidirectionalRefIngEntity ing2 =
        getEntityManager().find(DoubleListJoinColumnBidirectionalRefIngEntity.class, ing2_id);

    DoubleListJoinColumnBidirectionalRefEdEntity1 rev1 =
        getAuditReader().find(DoubleListJoinColumnBidirectionalRefEdEntity1.class, ed1_2_id, 1);
    DoubleListJoinColumnBidirectionalRefEdEntity1 rev2 =
        getAuditReader().find(DoubleListJoinColumnBidirectionalRefEdEntity1.class, ed1_2_id, 2);
    DoubleListJoinColumnBidirectionalRefEdEntity1 rev3 =
        getAuditReader().find(DoubleListJoinColumnBidirectionalRefEdEntity1.class, ed1_2_id, 3);
    DoubleListJoinColumnBidirectionalRefEdEntity1 rev4 =
        getAuditReader().find(DoubleListJoinColumnBidirectionalRefEdEntity1.class, ed1_2_id, 4);

    assertTrue(rev1.getOwner().equals(ing2));
    assertTrue(rev2.getOwner().equals(ing1));
    assertTrue(rev3.getOwner().equals(ing1));
    assertTrue(rev4.getOwner().equals(ing2));

    assertEquals(rev1.getData(), "ed1_2");
    assertEquals(rev2.getData(), "ed1_2");
    assertEquals(rev3.getData(), "ed1_2");
    assertEquals(rev4.getData(), "ed1_2");
  }