All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.ebeaninternal.server.persist.dml.DmlBeanPersisterFactory Maven / Gradle / Ivy

There is a newer version: 15.8.1
Show newest version
package io.ebeaninternal.server.persist.dml;

import io.ebean.config.dbplatform.DatabasePlatform;
import io.ebeaninternal.server.deploy.BeanDescriptor;
import io.ebeaninternal.server.persist.BeanPersister;
import io.ebeaninternal.server.persist.BeanPersisterFactory;

/**
 * Factory for creating a DmlBeanPersister for a bean type.
 */
public class DmlBeanPersisterFactory implements BeanPersisterFactory {

  private final DatabasePlatform dbPlatform;

  private final MetaFactory metaFactory;

  public DmlBeanPersisterFactory(DatabasePlatform dbPlatform) {
    this.dbPlatform = dbPlatform;
    this.metaFactory = new MetaFactory(dbPlatform);
  }

  /**
   * Create a DmlBeanPersister for the given bean type.
   */
  @Override
  public BeanPersister create(BeanDescriptor desc) {

    if (desc.isDocStoreOnly()) {
      return new DocStoreBeanPersister(GeneratedProperties.of(desc));
    }

    UpdateMeta updMeta = metaFactory.createUpdate(desc);
    DeleteMeta delMeta = metaFactory.createDelete(desc);
    InsertMeta insMeta = metaFactory.createInsert(desc);
    return new DmlBeanPersister(dbPlatform, updMeta, insMeta, delMeta);
  }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy