public void initialize() {
    identity = context.getMappingSyntaxStrategy().getIdentity(javaClass, context);
    owners = context.getMappingSyntaxStrategy().getOwningEntities(javaClass, context);
    persistentProperties =
        context.getMappingSyntaxStrategy().getPersistentProperties(javaClass, context);
    persistentPropertyNames = new ArrayList<String>();
    associations = new ArrayList();
    for (PersistentProperty persistentProperty : persistentProperties) {
      if (!(persistentProperty instanceof OneToMany))
        persistentPropertyNames.add(persistentProperty.getName());
      if (persistentProperty instanceof Association) {
        associations.add((Association) persistentProperty);
      }
    }
    for (PersistentProperty persistentProperty : persistentProperties) {
      propertiesByName.put(persistentProperty.getName(), persistentProperty);
    }

    Class superClass = javaClass.getSuperclass();
    if (superClass != null
        && !superClass.equals(Object.class)
        && !Modifier.isAbstract(superClass.getModifiers())) {
      parentEntity = context.addPersistentEntity(superClass);
    }

    getMapping().getMappedForm(); // initialize mapping
  }