I have several classes that use query builder to generate queries.  At least one of these fails intermittently when the query creates a new generated alias in the where clause when the original object is being used for arguments in the builder.  I think this is a QueryBuilder issue but want to know if anyone else has seen this problem.
The error I receive is 
Code:
Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: Invalid path: 'generatedAlias1.bundle' [select generatedAlias0 from com.synchronoss.readytogo.dao.DrbBundleBeanImpl as generatedAlias0 where generatedAlias1.bundle=:param0]
   at org.hibernate.hql.internal.ast.QuerySyntaxException.convert(QuerySyntaxException.java:54) [hibernate-core-4.1.3.Final-redhat-1.jar:4.1.3.Final-redhat-1]
   at org.hibernate.hql.internal.ast.QuerySyntaxException.convert(QuerySyntaxException.java:47) [hibernate-core-4.1.3.Final-redhat-1.jar:4.1.3.Final-redhat-1]
   at org.hibernate.hql.internal.ast.ErrorCounter.throwQueryException(ErrorCounter.java:79) [hibernate-core-4.1.3.Final-redhat-1.jar:4.1.3.Final-redhat-1]
   at org.hibernate.hql.internal.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:255) [hibernate-core-4.1.3.Final-redhat-1.jar:4.1.3.Final-redhat-1]
   at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:183) [hibernate-core-4.1.3.Final-redhat-1.jar:4.1.3.Final-redhat-1]
   at org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:136) [hibernate-core-4.1.3.Final-redhat-1.jar:4.1.3.Final-redhat-1]
   at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:105) [hibernate-core-4.1.3.Final-redhat-1.jar:4.1.3.Final-redhat-1]
   at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:80) [hibernate-core-4.1.3.Final-redhat-1.jar:4.1.3.Final-redhat-1]
   at org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:168) [hibernate-core-4.1.3.Final-redhat-1.jar:4.1.3.Final-redhat-1]
   at org.hibernate.internal.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:216) [hibernate-core-4.1.3.Final-redhat-1.jar:4.1.3.Final-redhat-1]
   at org.hibernate.internal.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:194) [hibernate-core-4.1.3.Final-redhat-1.jar:4.1.3.Final-redhat-1]
   at org.hibernate.internal.SessionImpl.createQuery(SessionImpl.java:1736) [hibernate-core-4.1.3.Final-redhat-1.jar:4.1.3.Final-redhat-1]
   at org.hibernate.ejb.AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl.java:493) [hibernate-entitymanager-4.1.3.Final-redhat-1.jar:4.1.3.Final-redhat-1]
The code that generates the query is:
Code:
class Foo {
...
private  CriteriaQuery<DrbBundleBeanImpl> beansQuery;
...
private CriteriaQuery<DrbBundleBeanImpl> getBeansQuery()
   {
      if(beansQuery == null)
      {
      CriteriaBuilder builder = manager.getCriteriaBuilder();
      builder = manager.getCriteriaBuilder();
      beansQuery = builder.createQuery(DrbBundleBeanImpl.class);
      Root<DrbBundleBeanImpl> root = beansQuery.from( DrbBundleBeanImpl.class );
      beansQuery.where(builder.equal(root.<String>get("bundle"),
                 builder.parameter(String.class, "param")));
      }
      return beansQuery;
   }
...
}
The bean implementation code:
Code:
@Entity(name="DrbBundleBean")
@Table( name="SNCR_DRB_BUNDLE")
@IdClass(DrbBundleBeanImpl.PK.class)
public class DrbBundleBeanImpl implements DrbBundleBean {
   /**
    * 
    */
   private static final long serialVersionUID = 1L;
   @Id
    private String bundle;
    @Id
    private String locale;
    @Id
    @Column(name="KEY_NAME")
    private String key;
    private String value;
   public String getBundle() {
      return bundle;
   }
   public void setBundle(String bundle) {
      this.bundle = bundle;
   }
   public String getLocale() {
      return locale;
   }
   public void setLocale(String locale) {
      this.locale = locale;
   }
   public String getKey() {
      return key;
   }
   public void setKey(String key) {
      this.key = key;
   }
   public String getValue() {
      return value;
   }
   public void setValue(String value) {
      this.value = value;
   }
   /**
    * The primary key for the bundle bean
    *
    */
   public static class PK implements Serializable {
      private static final long serialVersionUID = 2697712362067232634L;
      private String bundle;
       private String locale;
       private String key;
       public PK(){
       }
       
       public PK(DrbBundleBean bean){
           this.bundle = bean.getBundle();
           this.locale = bean.getLocale();
           this.key = bean.getKey();
       }
       
       public String getBundle() {
           return bundle;
       }
       public void setBundle(String bundle) {
           this.bundle = bundle;
       }
       public String getLocale() {
           return locale;
       }
       public void setLocale(String locale) {
           this.locale = locale;
       }
       public String getKey() {
           return key;
       }
       public void setKey(String key) {
           this.key = key;
       }
       
       public boolean equals(Object o)
       {
          if (o instanceof PK)
          {
             PK pk2 = (PK)o;
             return new EqualsBuilder().append( getBundle(), pk2.getBundle() )
                   .append( getLocale(), pk2.getLocale() )
                   .append( getKey(), pk2.getKey() ).isEquals();   
          }
          return false;
       }
       
       public int hashCode()
       {
          return new HashCodeBuilder().append( getBundle() ).append( getLocale() ).append( getKey() ).toHashCode();
       }
       
   }
   
}