diff --git a/querydsl-jpa/src/test/java/com/mysema/query/JPABase.java b/querydsl-jpa/src/test/java/com/mysema/query/JPABase.java index 3da5c8864..2265cbc23 100644 --- a/querydsl-jpa/src/test/java/com/mysema/query/JPABase.java +++ b/querydsl-jpa/src/test/java/com/mysema/query/JPABase.java @@ -34,8 +34,11 @@ import org.junit.rules.MethodRule; import org.junit.runner.RunWith; import com.mysema.query.jpa.JPASubQuery; +import com.mysema.query.jpa.JPQLSubQuery; import com.mysema.query.jpa.domain.Cat; import com.mysema.query.jpa.domain.QCat; +import com.mysema.query.jpa.domain.QChild; +import com.mysema.query.jpa.domain.QParent; import com.mysema.query.jpa.impl.JPADeleteClause; import com.mysema.query.jpa.impl.JPAQuery; import com.mysema.query.types.EntityPath; @@ -169,4 +172,21 @@ public class JPABase extends AbstractStandardTest { child.in(parent.kittens)).exists()) .execute(); } + + @Test + public void Delete_Where_SubQuery2() { + QChild child = QChild.child; + QParent parent = QParent.parent; + + JPASubQuery subQuery = new JPASubQuery() + .from(parent) + .where(parent.id.eq(2), + child.parent.eq(parent)); + //child.in(parent.children)); + + delete(child) + .where(child.id.eq(1), subQuery.exists()) + .execute(); + } + } diff --git a/querydsl-jpa/src/test/java/com/mysema/query/jpa/domain/Child.java b/querydsl-jpa/src/test/java/com/mysema/query/jpa/domain/Child.java new file mode 100644 index 000000000..e60d1c64f --- /dev/null +++ b/querydsl-jpa/src/test/java/com/mysema/query/jpa/domain/Child.java @@ -0,0 +1,16 @@ +package com.mysema.query.jpa.domain; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.ManyToOne; + +@Entity(name="Child2") +public class Child { + + @Id + int id; + + @ManyToOne + Parent parent; + +} diff --git a/querydsl-jpa/src/test/java/com/mysema/query/jpa/domain/Domain.java b/querydsl-jpa/src/test/java/com/mysema/query/jpa/domain/Domain.java index 9f6458736..b2590a6e7 100644 --- a/querydsl-jpa/src/test/java/com/mysema/query/jpa/domain/Domain.java +++ b/querydsl-jpa/src/test/java/com/mysema/query/jpa/domain/Domain.java @@ -35,6 +35,7 @@ public final class Domain { Calendar.class, Cat.class, Catalog.class, + Child.class, Color.class, Company.class, Customer.class, @@ -62,6 +63,7 @@ public final class Domain { Novel.class, Order.class, Parameter.class, + Parent.class, Payment.class, PaymentStatus.class, Person.class, diff --git a/querydsl-jpa/src/test/java/com/mysema/query/jpa/domain/Parent.java b/querydsl-jpa/src/test/java/com/mysema/query/jpa/domain/Parent.java new file mode 100644 index 000000000..e72db6924 --- /dev/null +++ b/querydsl-jpa/src/test/java/com/mysema/query/jpa/domain/Parent.java @@ -0,0 +1,18 @@ +package com.mysema.query.jpa.domain; + +import java.util.Set; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.OneToMany; + +@Entity(name="Parent2") +public class Parent { + + @Id + int id; + + @OneToMany(mappedBy = "parent") + Set children; + +}