diff --git a/querydsl-jdoql/pom.xml b/querydsl-jdoql/pom.xml index a15e86c9b..4799dbe7a 100644 --- a/querydsl-jdoql/pom.xml +++ b/querydsl-jdoql/pom.xml @@ -157,8 +157,28 @@ - - + + + com.mysema.querydsl + querydsl-maven-plugin + ${project.version} + + org.hsqldb.jdbcDriver + jdbc:hsqldb:target/jdo + com.mysema.query.jdoql.test.domain.sql + sa + src/test/java + S + + + + hsqldb + hsqldb + 1.8.0.7 + + + + diff --git a/querydsl-jdoql/src/main/java/com/mysema/query/jdoql/sql/JDOSQLQuery.java b/querydsl-jdoql/src/main/java/com/mysema/query/jdoql/sql/JDOSQLQuery.java index eebc0d8d9..342c7a615 100644 --- a/querydsl-jdoql/src/main/java/com/mysema/query/jdoql/sql/JDOSQLQuery.java +++ b/querydsl-jdoql/src/main/java/com/mysema/query/jdoql/sql/JDOSQLQuery.java @@ -16,6 +16,9 @@ import javax.annotation.Nullable; import javax.jdo.PersistenceManager; import javax.jdo.Query; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import com.mysema.commons.lang.CloseableIterator; import com.mysema.query.DefaultQueryMetadata; import com.mysema.query.QueryException; @@ -39,6 +42,8 @@ import com.mysema.util.ResultIterator; * */ public final class JDOSQLQuery extends AbstractSQLQuery implements SQLCommonQuery, Closeable{ + + private static final Logger logger = LoggerFactory.getLogger(JDOSQLQuery.class); private final boolean detach; @@ -88,7 +93,10 @@ public final class JDOSQLQuery extends AbstractSQLQuery implements serializer.serialize(queryMixin.getMetadata(), forCount); // create Query - Query query = persistenceManager.newQuery(serializer.toString()); + if (logger.isDebugEnabled()){ + logger.debug(serializer.toString()); + } + Query query = persistenceManager.newQuery("javax.jdo.query.SQL",serializer.toString()); orderedConstants = serializer.getConstants(); queries.add(query); @@ -100,6 +108,8 @@ public final class JDOSQLQuery extends AbstractSQLQuery implements } else if (exprType.equals(EConstructor.class)){ query.setResultClass(projection.get(0).getType()); } + }else{ + query.setResultClass(Long.class); } return query; @@ -164,7 +174,6 @@ public final class JDOSQLQuery extends AbstractSQLQuery implements queryMixin.addToProjection(expr); Query countQuery = createQuery(true); countQuery.setUnique(true); - countQuery.setResult("count(this)"); long total = (Long) execute(countQuery); if (total > 0) { QueryModifiers modifiers = queryMixin.getMetadata().getModifiers(); diff --git a/querydsl-jdoql/src/test/java/com/mysema/query/jdoql/AbstractJDOTest.java b/querydsl-jdoql/src/test/java/com/mysema/query/jdoql/AbstractJDOTest.java index a3aa362b7..d305ef4b3 100644 --- a/querydsl-jdoql/src/test/java/com/mysema/query/jdoql/AbstractJDOTest.java +++ b/querydsl-jdoql/src/test/java/com/mysema/query/jdoql/AbstractJDOTest.java @@ -25,7 +25,7 @@ import com.mysema.query.types.path.PEntity; public abstract class AbstractJDOTest { private static final JDOQLTemplates templates = new JDOQLTemplates(); - + protected static PersistenceManagerFactory pmf = JDOHelper.getPersistenceManagerFactory("datanucleus.properties"); protected PersistenceManager pm; @@ -48,10 +48,6 @@ public abstract class AbstractJDOTest { return query().from(source).where(condition).list(source); } -// protected JDOQLUpdateClause update(PEntity entity) { -// return new JDOQLUpdateClause(pm, entity, templates); -// } - protected JDOQLDeleteClause delete(PEntity entity) { return new JDOQLDeleteClause(pm, entity, templates); } @@ -80,7 +76,6 @@ public abstract class AbstractJDOTest { tx.begin(); pm.newQuery(Store.class).deletePersistentAll(); pm.newQuery(Product.class).deletePersistentAll(); - tx.commit(); } finally { if (tx.isActive()) { diff --git a/querydsl-jdoql/src/test/java/com/mysema/query/jdoql/JDOSQLQueryTest.java b/querydsl-jdoql/src/test/java/com/mysema/query/jdoql/JDOSQLQueryTest.java new file mode 100644 index 000000000..81caedb51 --- /dev/null +++ b/querydsl-jdoql/src/test/java/com/mysema/query/jdoql/JDOSQLQueryTest.java @@ -0,0 +1,131 @@ +package com.mysema.query.jdoql; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + +import java.util.List; + +import javax.jdo.PersistenceManager; +import javax.jdo.Transaction; + +import org.junit.BeforeClass; +import org.junit.Test; + +import com.mysema.query.SearchResults; +import com.mysema.query.jdoql.sql.JDOSQLQuery; +import com.mysema.query.jdoql.test.domain.sql.SProduct; +import com.mysema.query.jdoql.testdomain.Product; +import com.mysema.query.sql.HSQLDBTemplates; +import com.mysema.query.sql.SQLTemplates; +import com.mysema.query.types.EConstructor; +import com.mysema.query.types.expr.EBoolean; + +public class JDOSQLQueryTest extends AbstractJDOTest{ + + private final SQLTemplates sqlTemplates = new HSQLDBTemplates(); + + private JDOSQLQuery sql(){ + return new JDOSQLQuery(pm, sqlTemplates); + } + + + @Test + public void count(){ + SProduct product = SProduct.product; + + // total + assertEquals(30l, sql().from(product).count()); + + // startsWith + assertEquals(10l, sql().from(product).where(product.name.startsWith("A")).count()); + assertEquals(10l, sql().from(product).where(product.name.startsWith("B")).count()); + assertEquals(10l, sql().from(product).where(product.name.startsWith("C")).count()); + + // eq + for (int i = 0; i < 10; i++) { + assertEquals(1l, sql().from(product).where(product.name.eq("A"+i)).count()); + assertEquals(1l, sql().from(product).where(product.name.eq("B"+i)).count()); + assertEquals(1l, sql().from(product).where(product.name.eq("C"+i)).count()); + } + + } + + + + @Test + public void scalarQueries(){ + SProduct product = SProduct.product; + EBoolean filter = product.name.startsWith("A"); + + // count + assertEquals(10l, sql().from(product).where(filter).count()); + + // countDistinct + assertEquals(10l, sql().from(product).where(filter).countDistinct()); + + // list + assertEquals(10, sql().from(product).where(filter).list(product.name).size()); + + // list with limit + assertEquals(3, sql().from(product).limit(3).list(product.name).size()); + + // list with offset +// assertEquals(7, sql().from(product).offset(3).list(product.name).size()); + + // list with limit and offset + assertEquals(3, sql().from(product).offset(3).limit(3).list(product.name).size()); + + // list multiple + for (Object[] row : sql().from(product).list(product.productId, product.name, product.amount)){ + assertNotNull(row[0]); + assertNotNull(row[1]); + assertNotNull(row[2]); + } + + // listResults + SearchResults results = sql().from(product).limit(3).listResults(product.name); + assertEquals(3, results.getResults().size()); + assertEquals(30l, results.getTotal()); + + } + + @Test + public void entityProjections(){ + SProduct product = SProduct.product; + + List products = sql() + .from(product) + .list(EConstructor.create(Product.class, product.name, product.description, product.price, product.amount)); + assertEquals(30, products.size()); + for (Product p : products){ + assertNotNull(p.getName()); + assertNotNull(p.getDescription()); + assertNotNull(p.getPrice()); + assertNotNull(p.getAmount()); + } + } + + @BeforeClass + public static void doPersist() { + // Persistence of a Product and a Book. + PersistenceManager pm = pmf.getPersistenceManager(); + Transaction tx = pm.currentTransaction(); + try { + tx.begin(); + for (int i = 0; i < 10; i++) { + pm.makePersistent(new Product("C" + i, "F", 200.00, 2)); + pm.makePersistent(new Product("B" + i, "E", 400.00, 4)); + pm.makePersistent(new Product("A" + i, "D", 600.00, 6)); + } + tx.commit(); + } finally { + if (tx.isActive()) { + tx.rollback(); + } + pm.close(); + } + System.out.println(""); + + } + +} diff --git a/querydsl-jdoql/src/test/java/com/mysema/query/jdoql/test/domain/sql/SBook.java b/querydsl-jdoql/src/test/java/com/mysema/query/jdoql/test/domain/sql/SBook.java new file mode 100644 index 000000000..092d6148d --- /dev/null +++ b/querydsl-jdoql/src/test/java/com/mysema/query/jdoql/test/domain/sql/SBook.java @@ -0,0 +1,55 @@ +package com.mysema.query.jdoql.test.domain.sql; + +import static com.mysema.query.types.path.PathMetadataFactory.forVariable; + +import com.mysema.query.sql.ForeignKey; +import com.mysema.query.sql.PrimaryKey; +import com.mysema.query.sql.Table; +import com.mysema.query.types.Expr; +import com.mysema.query.types.PathMetadata; +import com.mysema.query.types.custom.CSimple; +import com.mysema.query.types.path.PEntity; +import com.mysema.query.types.path.PNumber; +import com.mysema.query.types.path.PString; + + +/** + * SBook is a Querydsl query type for SBook + */ +@Table(value="BOOK") +public class SBook extends PEntity { + + private static final long serialVersionUID = -1566558053; + + public static final SBook book = new SBook("BOOK"); + + public final PString author = createString("AUTHOR"); + + public final PNumber bookId = createNumber("BOOK_ID", Long.class); + + public final PString isbn = createString("ISBN"); + + public final PString publisher = createString("PUBLISHER"); + + public final PrimaryKey sysIdx65 = new PrimaryKey(this, bookId); + + public final ForeignKey bookFk1 = new ForeignKey(this, bookId, "PRODUCT_ID"); + + public SBook(String variable) { + super(SBook.class, forVariable(variable)); + } + + public SBook(PEntity entity) { + super(entity.getType(),entity.getMetadata()); + } + + public SBook(PathMetadata metadata) { + super(SBook.class, metadata); + } + + public Expr all() { + return CSimple.create(Object[].class, "{0}.*", this); + } + +} + diff --git a/querydsl-jdoql/src/test/java/com/mysema/query/jdoql/test/domain/sql/SProduct.java b/querydsl-jdoql/src/test/java/com/mysema/query/jdoql/test/domain/sql/SProduct.java new file mode 100644 index 000000000..c8186c06d --- /dev/null +++ b/querydsl-jdoql/src/test/java/com/mysema/query/jdoql/test/domain/sql/SProduct.java @@ -0,0 +1,70 @@ +package com.mysema.query.jdoql.test.domain.sql; + +import static com.mysema.query.types.path.PathMetadataFactory.forVariable; + +import com.mysema.query.sql.ForeignKey; +import com.mysema.query.sql.PrimaryKey; +import com.mysema.query.sql.Table; +import com.mysema.query.types.Expr; +import com.mysema.query.types.PathMetadata; +import com.mysema.query.types.custom.CSimple; +import com.mysema.query.types.path.PDate; +import com.mysema.query.types.path.PDateTime; +import com.mysema.query.types.path.PEntity; +import com.mysema.query.types.path.PNumber; +import com.mysema.query.types.path.PString; +import com.mysema.query.types.path.PTime; + + +/** + * SProduct is a Querydsl query type for SProduct + */ +@Table(value="PRODUCT") +public class SProduct extends PEntity { + + private static final long serialVersionUID = -590374403; + + public static final SProduct product = new SProduct("PRODUCT"); + + public final PNumber amount = createNumber("AMOUNT", Integer.class); + + public final PDate datefield = createDate("DATEFIELD", java.sql.Date.class); + + public final PString description = createString("DESCRIPTION"); + + public final PString name = createString("NAME"); + + public final PNumber price = createNumber("PRICE", Double.class); + + public final PNumber productId = createNumber("PRODUCT_ID", Long.class); + + public final PDateTime publicationdate = createDateTime("PUBLICATIONDATE", java.util.Date.class); + + public final PTime timefield = createTime("TIMEFIELD", java.sql.Time.class); + + public final PrimaryKey sysIdx47 = new PrimaryKey(this, productId); + + public final ForeignKey _storeProductsFk2 = new ForeignKey(this, productId, "PRODUCT_ID_EID"); + + public final ForeignKey _bookFk1 = new ForeignKey(this, productId, "BOOK_ID"); + + public final ForeignKey _storeProductsbynameFk2 = new ForeignKey(this, productId, "PRODUCT_ID_VID"); + + public SProduct(String variable) { + super(SProduct.class, forVariable(variable)); + } + + public SProduct(PEntity entity) { + super(entity.getType(),entity.getMetadata()); + } + + public SProduct(PathMetadata metadata) { + super(SProduct.class, metadata); + } + + public Expr all() { + return CSimple.create(Object[].class, "{0}.*", this); + } + +} + diff --git a/querydsl-jdoql/src/test/java/com/mysema/query/jdoql/test/domain/sql/SStore.java b/querydsl-jdoql/src/test/java/com/mysema/query/jdoql/test/domain/sql/SStore.java new file mode 100644 index 000000000..74a90d72f --- /dev/null +++ b/querydsl-jdoql/src/test/java/com/mysema/query/jdoql/test/domain/sql/SStore.java @@ -0,0 +1,53 @@ +package com.mysema.query.jdoql.test.domain.sql; + +import static com.mysema.query.types.path.PathMetadataFactory.forVariable; + +import com.mysema.query.sql.ForeignKey; +import com.mysema.query.sql.PrimaryKey; +import com.mysema.query.sql.Table; +import com.mysema.query.types.Expr; +import com.mysema.query.types.PathMetadata; +import com.mysema.query.types.custom.CSimple; +import com.mysema.query.types.path.PEntity; +import com.mysema.query.types.path.PNumber; +import com.mysema.query.types.path.PString; + + +/** + * SStore is a Querydsl query type for SStore + */ +@Table(value="STORE") +public class SStore extends PEntity { + + private static final long serialVersionUID = -1302810257; + + public static final SStore store = new SStore("STORE"); + + public final PString name = createString("NAME"); + + public final PNumber storeId = createNumber("STORE_ID", Long.class); + + public final PrimaryKey sysIdx51 = new PrimaryKey(this, storeId); + + public final ForeignKey _storeProductsbynameFk1 = new ForeignKey(this, storeId, "STORE_ID_OID"); + + public final ForeignKey _storeProductsFk1 = new ForeignKey(this, storeId, "STORE_ID_OID"); + + public SStore(String variable) { + super(SStore.class, forVariable(variable)); + } + + public SStore(PEntity entity) { + super(entity.getType(),entity.getMetadata()); + } + + public SStore(PathMetadata metadata) { + super(SStore.class, metadata); + } + + public Expr all() { + return CSimple.create(Object[].class, "{0}.*", this); + } + +} + diff --git a/querydsl-jdoql/src/test/java/com/mysema/query/jdoql/test/domain/sql/SStoreProducts.java b/querydsl-jdoql/src/test/java/com/mysema/query/jdoql/test/domain/sql/SStoreProducts.java new file mode 100644 index 000000000..e0dc23c09 --- /dev/null +++ b/querydsl-jdoql/src/test/java/com/mysema/query/jdoql/test/domain/sql/SStoreProducts.java @@ -0,0 +1,54 @@ +package com.mysema.query.jdoql.test.domain.sql; + +import static com.mysema.query.types.path.PathMetadataFactory.forVariable; + +import com.mysema.query.sql.ForeignKey; +import com.mysema.query.sql.PrimaryKey; +import com.mysema.query.sql.Table; +import com.mysema.query.types.Expr; +import com.mysema.query.types.PathMetadata; +import com.mysema.query.types.custom.CSimple; +import com.mysema.query.types.path.PEntity; +import com.mysema.query.types.path.PNumber; + + +/** + * SStoreProducts is a Querydsl query type for SStoreProducts + */ +@Table(value="STORE_PRODUCTS") +public class SStoreProducts extends PEntity { + + private static final long serialVersionUID = 1019873267; + + public static final SStoreProducts storeProducts = new SStoreProducts("STORE_PRODUCTS"); + + public final PNumber idx = createNumber("IDX", Integer.class); + + public final PNumber productIdEid = createNumber("PRODUCT_ID_EID", Long.class); + + public final PNumber storeIdOid = createNumber("STORE_ID_OID", Long.class); + + public final PrimaryKey sysIdx55 = new PrimaryKey(this, idx, storeIdOid); + + public final ForeignKey storeProductsFk2 = new ForeignKey(this, productIdEid, "PRODUCT_ID"); + + public final ForeignKey storeProductsFk1 = new ForeignKey(this, storeIdOid, "STORE_ID"); + + public SStoreProducts(String variable) { + super(SStoreProducts.class, forVariable(variable)); + } + + public SStoreProducts(PEntity entity) { + super(entity.getType(),entity.getMetadata()); + } + + public SStoreProducts(PathMetadata metadata) { + super(SStoreProducts.class, metadata); + } + + public Expr all() { + return CSimple.create(Object[].class, "{0}.*", this); + } + +} + diff --git a/querydsl-jdoql/src/test/java/com/mysema/query/jdoql/test/domain/sql/SStoreProductsbyname.java b/querydsl-jdoql/src/test/java/com/mysema/query/jdoql/test/domain/sql/SStoreProductsbyname.java new file mode 100644 index 000000000..f08d16527 --- /dev/null +++ b/querydsl-jdoql/src/test/java/com/mysema/query/jdoql/test/domain/sql/SStoreProductsbyname.java @@ -0,0 +1,55 @@ +package com.mysema.query.jdoql.test.domain.sql; + +import static com.mysema.query.types.path.PathMetadataFactory.forVariable; + +import com.mysema.query.sql.ForeignKey; +import com.mysema.query.sql.PrimaryKey; +import com.mysema.query.sql.Table; +import com.mysema.query.types.Expr; +import com.mysema.query.types.PathMetadata; +import com.mysema.query.types.custom.CSimple; +import com.mysema.query.types.path.PEntity; +import com.mysema.query.types.path.PNumber; +import com.mysema.query.types.path.PString; + + +/** + * SStoreProductsbyname is a Querydsl query type for SStoreProductsbyname + */ +@Table(value="STORE_PRODUCTSBYNAME") +public class SStoreProductsbyname extends PEntity { + + private static final long serialVersionUID = 764053781; + + public static final SStoreProductsbyname storeProductsbyname = new SStoreProductsbyname("STORE_PRODUCTSBYNAME"); + + public final PString key = createString("KEY"); + + public final PNumber productIdVid = createNumber("PRODUCT_ID_VID", Long.class); + + public final PNumber storeIdOid = createNumber("STORE_ID_OID", Long.class); + + public final PrimaryKey sysIdx53 = new PrimaryKey(this, key, storeIdOid); + + public final ForeignKey storeProductsbynameFk1 = new ForeignKey(this, storeIdOid, "STORE_ID"); + + public final ForeignKey storeProductsbynameFk2 = new ForeignKey(this, productIdVid, "PRODUCT_ID"); + + public SStoreProductsbyname(String variable) { + super(SStoreProductsbyname.class, forVariable(variable)); + } + + public SStoreProductsbyname(PEntity entity) { + super(entity.getType(),entity.getMetadata()); + } + + public SStoreProductsbyname(PathMetadata metadata) { + super(SStoreProductsbyname.class, metadata); + } + + public Expr all() { + return CSimple.create(Object[].class, "{0}.*", this); + } + +} + diff --git a/querydsl-jdoql/src/test/resources/log4j.properties b/querydsl-jdoql/src/test/resources/log4j.properties index e8dae315e..0d18be857 100644 --- a/querydsl-jdoql/src/test/resources/log4j.properties +++ b/querydsl-jdoql/src/test/resources/log4j.properties @@ -8,4 +8,4 @@ log4j.appender.stdout.layout.ConversionPattern=%5p [%d{yyyy-MM-dd HH:mm:ss}] (%F log4j.rootLogger=WARN, stdout -log4j.logger.com.mysema.query.jdoql=DEBUG, stdout \ No newline at end of file +log4j.logger.com.mysema.query.jdoql=DEBUG, stdout diff --git a/querydsl-maven-plugin/pom.xml b/querydsl-maven-plugin/pom.xml index fef417711..1791ec61a 100644 --- a/querydsl-maven-plugin/pom.xml +++ b/querydsl-maven-plugin/pom.xml @@ -39,7 +39,14 @@ com.mysema.querydsl querydsl-sql ${project.parent.version} - + + + + org.slf4j + slf4j-log4j12 + 1.5.2 + + diff --git a/querydsl-sql/src/main/java/com/mysema/query/sql/SQLSerializer.java b/querydsl-sql/src/main/java/com/mysema/query/sql/SQLSerializer.java index cb3de3dd9..fd2d61a0f 100644 --- a/querydsl-sql/src/main/java/com/mysema/query/sql/SQLSerializer.java +++ b/querydsl-sql/src/main/java/com/mysema/query/sql/SQLSerializer.java @@ -23,7 +23,16 @@ import com.mysema.query.QueryFlag; import com.mysema.query.QueryMetadata; import com.mysema.query.QueryFlag.Position; import com.mysema.query.serialization.SerializerBase; -import com.mysema.query.types.*; +import com.mysema.query.types.Constant; +import com.mysema.query.types.EConstructor; +import com.mysema.query.types.Expr; +import com.mysema.query.types.Operator; +import com.mysema.query.types.Ops; +import com.mysema.query.types.Order; +import com.mysema.query.types.OrderSpecifier; +import com.mysema.query.types.Param; +import com.mysema.query.types.Path; +import com.mysema.query.types.SubQuery; import com.mysema.query.types.custom.CSimple; import com.mysema.query.types.expr.EBoolean; import com.mysema.query.types.expr.ExprConst; @@ -98,15 +107,15 @@ public class SQLSerializer extends SerializerBase { return constants; } + @SuppressWarnings("unchecked") private List> getIdentifierColumns(List joins) { - // TODO : get only identifier columns, maybe from @Table annotation try { List> columns = new ArrayList>(); for (JoinExpression j : joins) { - for (Field field : j.getTarget().getClass().getFields()) { - if (Expr.class.isAssignableFrom(field.getType())){ - Expr column = (Expr) field.get(j.getTarget()); - columns.add(column); + for (Field field : j.getTarget().getClass().getFields()) { + if (PrimaryKey.class.isAssignableFrom(field.getType())){ + field.setAccessible(true); + columns.addAll(((PrimaryKey)field.get(j.getTarget())).getLocalColumns()); } } } @@ -173,8 +182,7 @@ public class SQLSerializer extends SerializerBase { }else{ append(templates.getDistinctCountStart()); if (sqlSelect.isEmpty()){ - List> columns = getIdentifierColumns(joins); - handle(columns.get(0)); + handle(getIdentifierColumns(joins).get(0)); }else{ handle(COMMA, sqlSelect); } diff --git a/querydsl-sql/src/test/java/com/mysema/query/sql/domain/QEmployee.java b/querydsl-sql/src/test/java/com/mysema/query/sql/domain/QEmployee.java index cd43ea12f..5d0616d65 100644 --- a/querydsl-sql/src/test/java/com/mysema/query/sql/domain/QEmployee.java +++ b/querydsl-sql/src/test/java/com/mysema/query/sql/domain/QEmployee.java @@ -20,10 +20,11 @@ import com.mysema.query.types.path.PString; import com.mysema.query.types.path.PTime; import com.mysema.query.types.path.PathMetadataFactory; -@SuppressWarnings("all") @Table("EMPLOYEE2") public class QEmployee extends PEntity { + private static final long serialVersionUID = 1394463749655231079L; + public Expr all(){ return CSimple.create(Object[].class, "{0}.*", this); } diff --git a/querydsl-sql/src/test/java/com/mysema/query/sql/domain/QIdName.java b/querydsl-sql/src/test/java/com/mysema/query/sql/domain/QIdName.java index da9b01513..6a369b997 100644 --- a/querydsl-sql/src/test/java/com/mysema/query/sql/domain/QIdName.java +++ b/querydsl-sql/src/test/java/com/mysema/query/sql/domain/QIdName.java @@ -8,9 +8,10 @@ package com.mysema.query.sql.domain; import com.mysema.query.types.EConstructor; import com.mysema.query.types.Expr; -@SuppressWarnings("all") public class QIdName extends EConstructor { + private static final long serialVersionUID = 5770565824515003611L; + public QIdName(Expr id, Expr name) { super(IdName.class, new Class[]{int.class, String.class}, id, name); } diff --git a/querydsl-sql/src/test/java/com/mysema/query/sql/domain/QSurvey.java b/querydsl-sql/src/test/java/com/mysema/query/sql/domain/QSurvey.java index ae10dac1f..ddf424e79 100644 --- a/querydsl-sql/src/test/java/com/mysema/query/sql/domain/QSurvey.java +++ b/querydsl-sql/src/test/java/com/mysema/query/sql/domain/QSurvey.java @@ -5,6 +5,7 @@ */ package com.mysema.query.sql.domain; +import com.mysema.query.sql.PrimaryKey; import com.mysema.query.sql.Table; import com.mysema.query.types.Expr; import com.mysema.query.types.PathMetadata; @@ -14,10 +15,12 @@ import com.mysema.query.types.path.PNumber; import com.mysema.query.types.path.PString; import com.mysema.query.types.path.PathMetadataFactory; -@SuppressWarnings("all") + @Table("SURVEY") public class QSurvey extends PEntity { + private static final long serialVersionUID = -7427577079709192842L; + public Expr all(){ return CSimple.create(Object[].class, "{0}.*", this); } @@ -25,6 +28,8 @@ public class QSurvey extends PEntity { public final PString name = createString("NAME"); public final PNumber id = createNumber("ID", java.lang.Integer.class); + + public final PrimaryKey idKey = new PrimaryKey(this,id); public QSurvey(java.lang.String path) { super(QSurvey.class, PathMetadataFactory.forVariable(path)); diff --git a/querydsl-sql/src/test/java/com/mysema/query/sql/domain/QTest_.java b/querydsl-sql/src/test/java/com/mysema/query/sql/domain/QTest_.java index 2f6aa30ca..7a78e01c3 100644 --- a/querydsl-sql/src/test/java/com/mysema/query/sql/domain/QTest_.java +++ b/querydsl-sql/src/test/java/com/mysema/query/sql/domain/QTest_.java @@ -13,10 +13,11 @@ import com.mysema.query.types.path.PEntity; import com.mysema.query.types.path.PString; import com.mysema.query.types.path.PathMetadataFactory; -@SuppressWarnings("all") @Table("TEST") public class QTest_ extends PEntity { + private static final long serialVersionUID = -8421112749591552595L; + public Expr all(){ return CSimple.create(Object[].class, "{0}.*", this); }