@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 testHistoryOfIng2() {
    DoubleListJoinColumnBidirectionalRefEdEntity1 ed1_1_fromRev3 =
        new DoubleListJoinColumnBidirectionalRefEdEntity1(ed1_1_id, "ed1_1 bis", null);
    DoubleListJoinColumnBidirectionalRefEdEntity1 ed1_2 =
        getEntityManager().find(DoubleListJoinColumnBidirectionalRefEdEntity1.class, ed1_2_id);
    DoubleListJoinColumnBidirectionalRefEdEntity2 ed2_1 =
        getEntityManager().find(DoubleListJoinColumnBidirectionalRefEdEntity2.class, ed2_1_id);
    DoubleListJoinColumnBidirectionalRefEdEntity2 ed2_2_fromRev1 =
        new DoubleListJoinColumnBidirectionalRefEdEntity2(ed2_2_id, "ed2_2", null);

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

    assertTrue(checkList(rev1.getReferences1(), ed1_2));
    assertTrue(checkList(rev2.getReferences1()));
    assertTrue(checkList(rev3.getReferences1()));
    assertTrue(checkList(rev4.getReferences1(), ed1_1_fromRev3, ed1_2));

    assertTrue(checkList(rev1.getReferences2(), ed2_2_fromRev1));
    assertTrue(checkList(rev2.getReferences2()));
    assertTrue(checkList(rev3.getReferences2()));
    assertTrue(checkList(rev4.getReferences2(), ed2_1));
  }