private TypeMetadataSet<EntityTypeMetadata<EntityMetadata>> getEffectiveTypes( Class<?> type, Class<?>... types) { MetadataProvider<EntityMetadata, EntityDiscriminator, RelationMetadata, RelationDiscriminator> metadataProvider = sessionContext.getMetadataProvider(); TypeMetadataSet<EntityTypeMetadata<EntityMetadata>> effectiveTypes = new TypeMetadataSet<>(); effectiveTypes.add(metadataProvider.getEntityMetadata(type)); for (Class<?> otherType : types) { effectiveTypes.add(metadataProvider.getEntityMetadata(otherType)); } return effectiveTypes; }