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.
/** * 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.
/** * 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); } }