1 Reply Latest reply on Nov 16, 2009 1:39 PM by cerdiogenes

    EntityQuery not applying QBE properly in join

    cerdiogenes

      Hi,


      I have the following code:


      @Name("avlPssFscEtapaList")
      public class AvlPssFscEtapaList extends EntityQuery<AvlPssFscEtapa> {
      
           private static final String EJBQL = "select avlPssFscEtapa from AvlPssFscEtapa avlPssFscEtapa";
      
           private static final String[] RESTRICTIONS = { "avlPssFscEtapa.mdnFuncao = #{avlPssFscEtapaList.mdnFuncao}", };
      
           private AvlPssFscEtapa avlPssFscEtapa = new AvlPssFscEtapa();
           private MdnFuncao mdnFuncao = new MdnFuncao();
      
           public AvlPssFscEtapaList() {
                /* Restrição ativa por padrao: O processo de mudança de funçao deve estar ativo. */
                mdnFuncao.setMdnFncAtiva('S');
                
                setEjbql(EJBQL);
                setRestrictionExpressionStrings(Arrays.asList(RESTRICTIONS));
                setMaxResults(25);
           }
      
           public AvlPssFscEtapa getAvlPssFscEtapa() {
                return avlPssFscEtapa;
           }
           
           public MdnFuncao getMdnFuncao() {
                return mdnFuncao;
           }
      }



      As you can see, in the constructor I set a property in MdnFuncao to be used in the query restrictions, but this isn't applied. The result SQL contains only the join column in the where condition. I understand wrong how this must work and I'm doing something wrong?


      Best regards,
      Carlos.

        • 1. Re: EntityQuery not applying QBE properly in join
          cerdiogenes

          Hi,


          I forgot to mention that if I change my restriction to:


          private static final String[] RESTRICTIONS = { "avlPssFscEtapa.mdnFuncao.mdnFncAtiva = #{avlPssFscEtapaList.mdnFuncao.mdnFncAtiva}", };




          The query works as expected, but from what I read the first method must also work.


          Best regards,
          Carlos.