public VDC find(Object pk) {
   VDC vdc = (VDC) em.find(VDC.class, pk);
   VDCCollection rootCollection = vdc.getRootCollection();
   rootCollection.getId();
   Collection<VDCCollection> subcollections = rootCollection.getSubCollections();
   traverseCollections(subcollections);
   return vdc;
 }
  private void traverseCollections(Collection<VDCCollection> collections) {
    for (Iterator it = collections.iterator(); it.hasNext(); ) {
      VDCCollection elem = (VDCCollection) it.next();
      elem.getId();

      Collection<VDCCollection> subcollections = elem.getSubCollections();
      if (subcollections.size() > 0) {
        traverseCollections(subcollections);
      }
    }
  }