added toString() serialization for JDOQL queries

This commit is contained in:
Timo Westkämper 2009-11-10 15:16:23 +00:00
parent 205763859b
commit 3dd390d8cd
2 changed files with 28 additions and 0 deletions

View File

@ -152,4 +152,16 @@ public abstract class AbstractJDOQLQuery<SubType extends AbstractJDOQLQuery<SubT
query.closeAll();
}
}
@Override
public String toString(){
if (!getMetadata().getJoins().isEmpty()){
Expr<?> source = this.getMetadata().getJoins().get(0).getTarget();
JDOQLSerializer serializer = new JDOQLSerializer(templates, source);
serializer.serialize(getMetadata(), false, false);
return serializer.toString();
}else{
return super.toString();
}
}
}

View File

@ -27,6 +27,22 @@ public class BasicsTest extends AbstractJDOTest {
private QBook book = QBook.book;
private QProduct product = QProduct.product;
private QProduct product2 = new QProduct("product2");
@Test
public void serialization() throws IOException{
JDOQLQuery query = query();
assertEquals("\nFROM com.mysema.query.jdoql.testdomain.Product", query.from(product).toString());
assertEquals(
"\nFROM com.mysema.query.jdoql.testdomain.Product" +
"\nVARIABLES com.mysema.query.jdoql.testdomain.Product product2",
query.from(product2).toString());
query.where(product.ne(product2)).list(product, product2);
query.close();
}
@Test
public void delete(){