@Test
  public void testSaving() {
    byte[] value = buildRecursively(ARRAY_SIZE, true);

    Session s = openSession();
    s.beginTransaction();
    LongByteArrayHolder entity = new LongByteArrayHolder();
    entity.setLongByteArray(value);
    s.persist(entity);
    s.getTransaction().commit();
    s.close();

    s = openSession();
    s.beginTransaction();
    entity = (LongByteArrayHolder) s.get(LongByteArrayHolder.class, entity.getId());
    Assert.assertEquals(ARRAY_SIZE, entity.getLongByteArray().length);
    assertEquals(value, entity.getLongByteArray());
    s.delete(entity);
    s.getTransaction().commit();
    s.close();
  }
  @Test
  public void testBoundedLongByteArrayAccess() {
    byte[] original = buildRecursively(ARRAY_SIZE, true);
    byte[] changed = buildRecursively(ARRAY_SIZE, false);
    byte[] empty = new byte[] {};

    Session s = openSession();
    s.beginTransaction();
    LongByteArrayHolder entity = new LongByteArrayHolder();
    s.save(entity);
    s.getTransaction().commit();
    s.close();

    s = openSession();
    s.beginTransaction();
    entity = (LongByteArrayHolder) s.get(LongByteArrayHolder.class, entity.getId());
    assertNull(entity.getLongByteArray());
    entity.setLongByteArray(original);
    s.getTransaction().commit();
    s.close();

    s = openSession();
    s.beginTransaction();
    entity = (LongByteArrayHolder) s.get(LongByteArrayHolder.class, entity.getId());
    Assert.assertEquals(ARRAY_SIZE, entity.getLongByteArray().length);
    assertEquals(original, entity.getLongByteArray());
    entity.setLongByteArray(changed);
    s.getTransaction().commit();
    s.close();

    s = openSession();
    s.beginTransaction();
    entity = (LongByteArrayHolder) s.get(LongByteArrayHolder.class, entity.getId());
    Assert.assertEquals(ARRAY_SIZE, entity.getLongByteArray().length);
    assertEquals(changed, entity.getLongByteArray());
    entity.setLongByteArray(null);
    s.getTransaction().commit();
    s.close();

    s = openSession();
    s.beginTransaction();
    entity = (LongByteArrayHolder) s.get(LongByteArrayHolder.class, entity.getId());
    assertNull(entity.getLongByteArray());
    entity.setLongByteArray(empty);
    s.getTransaction().commit();
    s.close();

    s = openSession();
    s.beginTransaction();
    entity = (LongByteArrayHolder) s.get(LongByteArrayHolder.class, entity.getId());
    if (entity.getLongByteArray() != null) {
      Assert.assertEquals(empty.length, entity.getLongByteArray().length);
      assertEquals(empty, entity.getLongByteArray());
    }
    s.delete(entity);
    s.getTransaction().commit();
    s.close();
  }