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

io.ebeaninternal.server.core.Persister Maven / Gradle / Ivy

There is a newer version: 15.6.0
Show newest version
package io.ebeaninternal.server.core;

import io.ebean.CallableSql;
import io.ebean.MergeOptions;
import io.ebean.Query;
import io.ebean.SqlUpdate;
import io.ebean.Transaction;
import io.ebean.Update;
import io.ebean.bean.EntityBean;
import io.ebean.meta.MetricVisitor;
import io.ebeaninternal.api.SpiTransaction;
import io.ebeaninternal.server.deploy.BeanDescriptor;

import java.util.Collection;
import java.util.List;

/**
 * API for persisting a bean.
 */
public interface Persister {

  /**
   * Merge the bean.
   */
  int merge(BeanDescriptor desc, EntityBean entityBean, MergeOptions options, SpiTransaction transaction);

  /**
   * Update the bean.
   */
  void update(EntityBean entityBean, Transaction t);

  /**
   * Update the bean specifying deleteMissingChildren.
   */
  void update(EntityBean entityBean, Transaction t, boolean deleteMissingChildren);

  /**
   * Force an Insert using the given bean.
   */
  void insert(EntityBean entityBean, Transaction t);

  /**
   * Insert or update the bean depending on its state.
   */
  void save(EntityBean entityBean, Transaction t);

  /**
   * Delete a bean given it's type and id value.
   * 

* This will also cascade delete one level of children. *

*/ int delete(Class beanType, Object id, Transaction transaction, boolean permanent); /** * Delete the bean. */ int delete(EntityBean entityBean, Transaction t, boolean permanent); /** * Delete multiple beans given a collection of Id values. */ int deleteMany(Class beanType, Collection ids, Transaction transaction, boolean permanent); /** * Execute the Update. */ int executeOrmUpdate(Update update, Transaction t); /** * Execute the UpdateSql. */ int executeSqlUpdate(SqlUpdate update, Transaction t); /** * Execute the CallableSql. */ int executeCallable(CallableSql callable, Transaction t); /** * Publish the draft beans matching the given query. */ List publish(Query query, Transaction transaction); /** * Restore the draft beans back to the matching live beans. */ List draftRestore(Query query, Transaction transaction); /** * Visit the metrics. */ void visitMetrics(MetricVisitor visitor); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy