
com.mysema.query.jpa.AbstractJPQLSubQuery Maven / Gradle / Ivy
/*
* Copyright (c) 2010 Mysema Ltd.
* All rights reserved.
*
*/
package com.mysema.query.jpa;
import com.mysema.query.DefaultQueryMetadata;
import com.mysema.query.QueryMetadata;
import com.mysema.query.support.DetachableQuery;
import com.mysema.query.types.CollectionExpression;
import com.mysema.query.types.EntityPath;
import com.mysema.query.types.MapExpression;
import com.mysema.query.types.Path;
import com.mysema.query.types.Predicate;
/**
* Abstract superclass for SubQuery implementations
*
* @author tiwe
*
* @param
*/
public class AbstractJPQLSubQuery> extends DetachableQuery{
private final JPQLQueryMixin queryMixin;
public AbstractJPQLSubQuery() {
this(new DefaultQueryMetadata());
}
@SuppressWarnings("unchecked")
public AbstractJPQLSubQuery(QueryMetadata metadata) {
super(new JPQLQueryMixin(metadata));
super.queryMixin.setSelf((Q)this);
this.queryMixin = (JPQLQueryMixin) super.queryMixin;
}
public Q from(EntityPath>... o) {
return queryMixin.from(o);
}
public Q fullJoin(CollectionExpression,P> target) {
return queryMixin.fullJoin(target);
}
public
Q fullJoin(CollectionExpression,P> target, Path
alias) {
return queryMixin.fullJoin(target, alias);
}
public
Q fullJoin(EntityPath
target) {
return queryMixin.fullJoin(target);
}
public
Q fullJoin(EntityPath
target, EntityPath
alias) {
return queryMixin.fullJoin(target, alias);
}
public
Q fullJoin(MapExpression,P> target) {
return queryMixin.fullJoin(target);
}
public
Q fullJoin(MapExpression,P> target, Path
alias) {
return queryMixin.fullJoin(target, alias);
}
public
Q innerJoin(CollectionExpression,P> target) {
return queryMixin.innerJoin(target);
}
public
Q innerJoin(CollectionExpression,P> target, Path
alias) {
return queryMixin.innerJoin(target, alias);
}
public
Q innerJoin(EntityPath
target) {
return queryMixin.innerJoin(target);
}
public
Q innerJoin(EntityPath
target, EntityPath
alias) {
return queryMixin.innerJoin(target, alias);
}
public
Q innerJoin(MapExpression,P> target) {
return queryMixin.innerJoin(target);
}
public
Q innerJoin(MapExpression,P> target, Path
alias) {
return queryMixin.innerJoin(target, alias);
}
public
Q join(CollectionExpression,P> target) {
return queryMixin.join(target);
}
public
Q join(CollectionExpression,P> target, Path
alias) {
return queryMixin.join(target, alias);
}
public
Q join(EntityPath
target) {
return queryMixin.join(target);
}
public
Q join(EntityPath
target, EntityPath
alias) {
return queryMixin.join(target, alias);
}
public
Q join(MapExpression,P> target) {
return queryMixin.join(target);
}
public
Q join(MapExpression,P> target, Path
alias) {
return queryMixin.join(target, alias);
}
public
Q leftJoin(CollectionExpression,P> target) {
return queryMixin.leftJoin(target);
}
public
Q leftJoin(CollectionExpression,P> target, Path
alias) {
return queryMixin.leftJoin(target, alias);
}
public
Q leftJoin(EntityPath
target) {
return queryMixin.leftJoin(target);
}
public
Q leftJoin(EntityPath
target, EntityPath
alias) {
return queryMixin.leftJoin(target, alias);
}
public
Q leftJoin(MapExpression,P> target) {
return queryMixin.leftJoin(target);
}
public
Q leftJoin(MapExpression,P> target, Path
alias) {
return queryMixin.leftJoin(target, alias);
}
public Q with(Predicate... conditions){
return queryMixin.with(conditions);
}
public String toString(){
if (!queryMixin.getMetadata().getJoins().isEmpty()){
JPQLSerializer serializer = new JPQLSerializer(JPQLTemplates.DEFAULT);
serializer.serialize(queryMixin.getMetadata(), false, null);
return serializer.toString().trim();
}else{
return super.toString();
}
}
}