0 Replies Latest reply on Jun 3, 2009 5:23 PM by tresher.m

    Custom clause in ManyToOne relation

      We need to add custom clause to all of selects and we have to do it automatically.

      For example:

      @Entity
      public class A extends DeletableEntity{
       @OneToMany(mappedBy = "a")
       @Where(clause = "DELETED=0 or DELETED is null")
       private Set<B> bSet = new HashSet<B>();
      
      ....
      }
      
      @Entity
      public class B extends DeletableEntity
      {
       @ManyToOne
       @Where(clause = "DELETED=0 or DELETED is null")
       private A a;
      
      ....
      }



      when executed follow HQL with select from A:
      "select b.DELETED from A a join a.bSet b"

      generated SQL have needed clause
      select bset1_.DELETED as col_0_0_ from A a0_ inner join B bset1_ on a0_.id=bset1_.a_id and ( bset1_.DELETED=0 or bset1_.DELETED is null)

      But from this HQL:
      "select b.DELETED from B b join b.a a"
      query naven't any clause:
      select b0_.DELETED as col_0_0_ from B b0_ inner join A a1_ on b0_.a_id=a1_.id

      How can we to select only not deleted A entities, jioned to B?