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

com.avaje.ebeaninternal.api.LoadRequest Maven / Gradle / Ivy

There is a newer version: 8.1.1
Show newest version
package com.avaje.ebeaninternal.api;

import com.avaje.ebean.Transaction;
import com.avaje.ebeaninternal.server.core.OrmQueryRequest;

/**
 * Request for loading Associated One Beans.
 */
public abstract class LoadRequest {

  protected final OrmQueryRequest parentRequest;

  protected final Transaction transaction;

  protected final boolean lazy;

	public LoadRequest(OrmQueryRequest parentRequest, boolean lazy) {

	  this.parentRequest = parentRequest;
		this.transaction = parentRequest == null ? null : parentRequest.getTransaction();
		this.lazy = lazy;
	}

  /**
   * Return the associated bean type for this load request.
   */
  public abstract Class getBeanType();

  /**
   * Log the just executed secondary query with the 'root' query if 'logSecondaryQuery' is set to
   * true. This is for testing purposes to confirm the secondary query executes etc.
   */
  public void logSecondaryQuery(SpiQuery query) {
    if (parentRequest != null && parentRequest.isLogSecondaryQuery()) {
      parentRequest.getQuery().logSecondaryQuery(query);
    }
  }
  
	/**
	 * Return true if this is a lazy load and false if it is a secondary query.
	 */
	public boolean isLazy() {
		return lazy;
	}

	/**
	 * Return the transaction to use if this is a secondary query.
	 * 

* Lazy loading queries run in their own transaction. *

*/ public Transaction getTransaction() { return transaction; } /** * Return true if the parent query is a findIterate() type query. * So one of - findIterate(), findEach(), findEachWhile() or findVisit(). */ public boolean isParentFindIterate() { return parentRequest != null && parentRequest.getQuery().getType() == SpiQuery.Type.ITERATE; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy