@Test
  public void storeLoad() throws Exception {
    UserTransaction tx = TM.getUserTransaction();
    try {
      tx.begin();
      EntityManager em = JPA.createEntityManager();

      Long DEPARTMENT_ID;
      {
        Department department = new Department("Sales");
        em.persist(department);

        UserId id = new UserId("johndoe", null); // Null?
        User user = new User(id);
        user.setDepartment(department); // Required!
        em.persist(user);

        DEPARTMENT_ID = department.getId();
      }

      tx.commit();
      em.close();

      tx.begin();
      em = JPA.createEntityManager();

      {
        UserId id = new UserId("johndoe", DEPARTMENT_ID);
        User user = em.find(User.class, id);
        assertEquals(user.getDepartment().getName(), "Sales");
      }

      tx.commit();
      em.close();
    } finally {
      TM.rollback();
    }
  }