I tryied your two tips and both didnt work. After tweaking the first one a bit, 
it started to compile. But it still not doing what i want. My SQL/JPQL skills 
are not very good so i probabbly did something wrong.

Here is my test class and entity classes.

------------ Test-----------------------
package entity;
  | 
  | import java.util.ArrayList;
  | import java.util.List;
  | 
  | import javax.persistence.EntityManager;
  | import javax.persistence.EntityManagerFactory;
  | import javax.persistence.Persistence;
  | 
  | public class ObjectTest {
  | 
  |     public static void main(String[] args) {
  |             
  |             EntityManagerFactory emf =  
Persistence.createEntityManagerFactory("persistenceUnit");
  |             EntityManager em = emf.createEntityManager();
  | 
  |             ObjectA a1 = new ObjectA();
  |             ObjectA a2 = new ObjectA();
  | 
  |             ObjectB b1 = new ObjectB();
  |             ObjectB b2 = new ObjectB();
  |             ObjectB b3 = new ObjectB();
  |             
  |             a1.getList().add(b1);
  |             a1.getList().add(b2);
  |             a2.getList().add(b3);
  |             
  |             em.getTransaction().begin();
  |             em.persist(a1);
  |             em.persist(a2);
  |             em.getTransaction().commit();
  |             
  |             List<ObjectB> param = new ArrayList<ObjectB>();
  |             param.add(b1);
  |             param.add(b2);
  | 
  | //"from ObjectA o where o.id in(select distinct b.fk_objectA from 
ObjectB.fk_objectA b where b.id in :param)"
  | //"from ObjectA o where o in(select distinct b from ObjectB b where b 
in(:param))"
  |             List<ObjectA> list = em.createQuery("from ObjectA o where o 
in(select b from ObjectB b where b in(:param))").setParameter("param", 
param).getResultList();
  |             for (ObjectA t : list) {
  |                     System.out.println(t);
  |             }
  |     }
  |     
  | }
  | 

----------------        Entityies -----------------------


  | package entity;
  | 
  | import java.util.ArrayList;
  | import java.util.List;
  | 
  | import javax.persistence.CascadeType;
  | import javax.persistence.Entity;
  | import javax.persistence.GeneratedValue;
  | import javax.persistence.GenerationType;
  | import javax.persistence.Id;
  | import javax.persistence.OneToMany;
  | 
  | @Entity
  | public class ObjectA {
  | 
  |     @Id
  |     @GeneratedValue(strategy = GenerationType.AUTO)
  |     private Long id;
  | 
  |     @OneToMany(mappedBy="objectA",cascade=CascadeType.ALL)
  |     private List<ObjectB> list = new ArrayList<ObjectB>();
  | 
  |     public Long getId() {
  |             return id;
  |     }
  | 
  |     public void setId(Long id) {
  |             this.id = id;
  |     }
  | 
  |     public List<ObjectB> getList() {
  |             return list;
  |     }
  | 
  |     public void setList(List<ObjectB> list) {
  |             this.list = list;
  |     }
  |     
  |     @Override
  |     public String toString() {
  |             String tmp = "id: "+id+"\nlist:\n";
  |             for(ObjectB t : list){
  |                     tmp += "id:"+ t.getId() +"\n";
  |             }
  |             return tmp+="\n";
  |     }
  | 
  |     @Override
  |     public int hashCode() {
  |             final int prime = 31;
  |             int result = 1;
  |             result = prime * result + ((id == null) ? 0 : id.hashCode());
  |             return result;
  |     }
  | 
  |     @Override
  |     public boolean equals(Object obj) {
  |             if (this == obj)
  |                     return true;
  |             if (obj == null)
  |                     return false;
  |             if (getClass() != obj.getClass())
  |                     return false;
  |             ObjectA other = (ObjectA) obj;
  |             if (id == null) {
  |                     if (other.id != null)
  |                             return false;
  |             } else if (!id.equals(other.id))
  |                     return false;
  |             return true;
  |     }
  | 
  | }
  | 


  | package entity;
  | 
  | import javax.persistence.Entity;
  | import javax.persistence.GeneratedValue;
  | import javax.persistence.GenerationType;
  | import javax.persistence.Id;
  | import javax.persistence.ManyToOne;
  | 
  | @Entity
  | public class ObjectB {
  |     
  |     @Id
  |     @GeneratedValue(strategy = GenerationType.AUTO)
  |     private Long id;
  | 
  |     @ManyToOne
  |     private ObjectA objectA;
  | 
  |     public Long getId() {
  |             return id;
  |     }
  | 
  |     public void setId(Long id) {
  |             this.id = id;
  |     }
  | 
  |     public void setObjectA(ObjectA objectA) {
  |             this.objectA = objectA;
  |     }
  | 
  |     public ObjectA getObjectA() {
  |             return objectA;
  |     }
  | 
  |     @Override
  |     public int hashCode() {
  |             final int prime = 31;
  |             int result = 1;
  |             result = prime * result + ((id == null) ? 0 : id.hashCode());
  |             return result;
  |     }
  | 
  |     @Override
  |     public boolean equals(Object obj) {
  |             if (this == obj)
  |                     return true;
  |             if (obj == null)
  |                     return false;
  |             if (getClass() != obj.getClass())
  |                     return false;
  |             ObjectB other = (ObjectB) obj;
  |             if (id == null) {
  |                     if (other.id != null)
  |                             return false;
  |             } else if (!id.equals(other.id))
  |                     return false;
  |             return true;
  |     }
  | 
  | }
  | 

View the original post : 
http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4231141#4231141

Reply to the post : 
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4231141
_______________________________________________
jboss-user mailing list
jboss-user@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to