@@ -0,0 +1,1460 @@
+package org.avaje.ebean.typequery;%0A%0Aimport com.avaje.ebean.ExpressionList;%0A%0A/**%0A * Base type for associated beans.%0A *%0A * @param %3CT%3E the entity bean type (normal entity bean type e.g. Customer)%0A * @param %3CR%3E the specific root query bean type (e.g. QCustomer)%0A */%0Apublic abstract class TQAssocBean%3CT, R%3E %7B%0A%0A  protected final String name;%0A%0A  protected final R root;%0A%0A  /**%0A   * Construct with a property name and root instance.%0A   *%0A   * @param name the name of the property%0A   * @param root the root query bean instance%0A   */%0A  public TQAssocBean(String name, R root) %7B%0A    this(name, root, null);%0A  %7D%0A%0A  /**%0A   * Construct with additional path prefix.%0A   */%0A  public TQAssocBean(String name, R root, String prefix) %7B%0A    this.root = root;%0A    this.name = TQPath.add(prefix, name);%0A  %7D%0A%0A  /**%0A   * Internal method to return the underlying expression list.%0A   */%0A  protected ExpressionList%3C?%3E expr() %7B%0A    return ((TQRootBean) root).peekExprList();%0A  %7D%0A%0A  /**%0A   * Is equal to by ID property.%0A   */%0A  public R equalTo(T other) %7B%0A    expr().eq(name, other);%0A    return root;%0A  %7D%0A%0A  /**%0A   * Is not equal to by ID property.%0A   */%0A  public R notEqualTo(T other) %7B%0A    expr().ne(name, other);%0A    return root;%0A  %7D%0A%0A  /**%0A   * Apply a filter when fetching these beans.%0A   */%0A  public R filterMany(ExpressionList%3CT%3E filter) %7B%0A%0A    ExpressionList%3CT%3E expressionList = (ExpressionList%3CT%3E)expr().filterMany(name);%0A%0A    expressionList.addAll(filter);%0A    return root;%0A  %7D%0A%7D%0A

Add TQAssocBean