protected NestedDatasource createEmbeddedDatasource() { return new EmbeddedDatasourceImpl(); }
protected void createNestedEmbeddedDatasources(Datasource masterDs, MetaClass metaClass, String fqnPrefix) { for (MetaProperty metaProperty : metaClass.getProperties()) { if (MetaProperty.Type.ASSOCIATION == metaProperty.getType() || MetaProperty.Type.COMPOSITION == metaProperty.getType()) { String fqn = metaProperty.getName(); if (StringUtils.isNotEmpty(fqnPrefix)) { fqn = fqnPrefix + "." + fqn; } if (managedEmbeddedProperties.contains(fqn) && metadataTools.isEmbedded(metaProperty)) { MetaClass propertyMetaClass = metaProperty.getRange().asClass(); @SuppressWarnings("unchecked") NestedDatasource<Entity> propertyDs = new EmbeddedDatasourceImpl(); propertyDs.setup(fqn + "Ds", masterDs, metaProperty.getName()); propertyDs.setAllowCommit(false); createNestedEmbeddedDatasources(propertyDs, propertyMetaClass, fqn); datasources.put(fqn, propertyDs); dsContext.register(propertyDs); } } } }
protected void createNestedEmbeddedDatasources(MetaClass metaClass, String fqnPrefix, Datasource masterDs) { for (MetaProperty metaProperty : metaClass.getProperties()) { if (MetaProperty.Type.ASSOCIATION == metaProperty.getType() || MetaProperty.Type.COMPOSITION == metaProperty.getType()) { if (isEmbedded(metaProperty)) { String fqn = fqnPrefix + "." + metaProperty.getName(); MetaClass propertyMetaClass = metaProperty.getRange().asClass(); NestedDatasource propertyDs = new EmbeddedDatasourceImpl(); propertyDs.setup(fqn + "Ds", masterDs, metaProperty.getName()); createNestedEmbeddedDatasources(propertyMetaClass, fqn, propertyDs); datasources.put(fqn, propertyDs); dsContext.register(propertyDs); } } } }
} else { if (isEmbedded(metaProperty)) { propertyDs = new EmbeddedDatasourceImpl(); } else { propertyDs = new PropertyDatasourceImpl();