Ir para o conteúdo

 Voltar a Jaguar - Sup...
Tela cheia

Erro ao pesquisar o Municipio

6 de Maio de 2011, 15:54 , por Desconhecido - | Ninguém seguindo este artigo por enquanto.
Visualizado 56 vezes

Segui os passos conforme o video 5 para criar o cadastro de Municipio. Após criá-lo entrei na pesquisa por Municipio e preenchi os campos Descrição e UF, e quando cliquei em pesquisar obtive a seguinte mensagem de erro no console:

org.hibernate.QueryException: could not resolve property: uf of: pacote.entity.UfEntity [select count(*) from pacote.entity.MunicipioEntity obj left outer join obj.uf as obj1  where obj.descricao like '%' || :descricao  and obj1.uf = :uf ]
    at org.hibernate.persister.entity.AbstractPropertyMapping.propertyException(AbstractPropertyMapping.java:81)
    at org.hibernate.persister.entity.AbstractPropertyMapping.toType(AbstractPropertyMapping.java:75)
    at org.hibernate.persister.entity.AbstractEntityPersister.toType(AbstractEntityPersister.java:1449)
    at org.hibernate.hql.ast.tree.FromElementType.getPropertyType(FromElementType.java:315)
    at org.hibernate.hql.ast.tree.FromElement.getPropertyType(FromElement.java:487)
    at org.hibernate.hql.ast.tree.DotNode.getDataType(DotNode.java:611)

Autor: Cristian Poças


44 comentários

  • F24a4b3d0e8ba72374bf01a0393fe3c3?only path=false&size=50&d=404Marco Quiçula(usuário não autenticado)
    7 de Maio de 2011, 15:31

     

    Encaminhe as 2 classes abstratas e a duas concretas de município e uf para darmos uma olhada. É erro de Hibernate!

    • 911c8cd54a8fa264fa05df75a3491e55?only path=false&size=50&d=404Cristian Poças(usuário não autenticado)
      9 de Maio de 2011, 9:09

       

      package pacote.entity;

      import com.powerlogic.jcompany.domain.validation.PlcUnifiedValidation;
      import javax.persistence.ManyToOne;
      import javax.persistence.Column;
      import javax.validation.constraints.NotNull;
      import javax.persistence.Id;
      import javax.validation.constraints.Size;
      import javax.persistence.GenerationType;
      import javax.persistence.MappedSuperclass;
      import javax.persistence.JoinColumn;
      import javax.persistence.FetchType;
      import org.hibernate.annotations.ForeignKey;
      import javax.persistence.GeneratedValue;

      @MappedSuperclass
      @PlcUnifiedValidation
      public abstract class Municipio extends AppBaseEntity {

          
          @Id
           @GeneratedValue(strategy=GenerationType.AUTO, generator = "SE_MUNICIPIO")
          @Column(nullable=false,length=5)
          private Long id;

         
          @NotNull
          @Size(max = 60)
          @Column
          private String descricao;
         
          @ManyToOne (targetEntity = UfEntity.class, fetch = FetchType.LAZY)
          @ForeignKey(name="FK_MUNICIPIO_UF")
          @NotNull
          @JoinColumn
          private Uf uf;
          public Long getId() {
              return id;
          }

          public void setId(Long id) {
              this.id=id;
          }

          public String getDescricao() {
              return descricao;
          }

          public void setDescricao(String descricao) {
              this.descricao=descricao;
          }

          public Uf getUf() {
              return uf;
          }

          public void setUf(Uf uf) {
              this.uf=uf;
          }

      }
       

       

      package pacote.entity;

      import javax.persistence.NamedQueries;
      import javax.persistence.NamedQuery;
      import javax.persistence.Access;
      import javax.persistence.SequenceGenerator;
      import javax.persistence.Table;
      import javax.persistence.AccessType;
      import com.powerlogic.jcompany.commons.config.stereotypes.SPlcEntity;
      import javax.persistence.Entity;
      /**
       * Classe Concreta gerada a partir do assistente
       */
      @SPlcEntity
      @Entity
      @Table(name="MUNICIPIO")
      @SequenceGenerator(name="SE_MUNICIPIO", sequenceName="SE_MUNICIPIO")
      @Access(AccessType.FIELD)

      @NamedQueries({
          @NamedQuery(name="MunicipioEntity.queryMan", query="from MunicipioEntity"),
          @NamedQuery(name="MunicipioEntity.querySel", query="select obj.id as id, obj.descricao as descricao, obj1.id as uf_id , obj1.descricao as uf_descricao from MunicipioEntity obj left outer join obj.uf as obj1 order by obj.descricao asc"),
          @NamedQuery(name="MunicipioEntity.querySelLookup", query="select id as id, descricao as descricao from MunicipioEntity where id = ? order by id asc")
      })
      public class MunicipioEntity extends Municipio {

          private static final long serialVersionUID = 1L;
          
          /*
           * Construtor padrão
           */
          public MunicipioEntity() {
          }
          @Override
          public String toString() {
              return getDescricao();
          }

      }

       

      package pacote.entity;

      import com.powerlogic.jcompany.domain.validation.PlcUnifiedValidation;
      import javax.persistence.Column;
      import javax.validation.constraints.NotNull;
      import javax.persistence.Id;
      import javax.validation.constraints.Size;
      import javax.persistence.GenerationType;
      import javax.persistence.MappedSuperclass;
      import com.powerlogic.jcompany.config.domain.PlcReference;
      import javax.persistence.GeneratedValue;

      @MappedSuperclass
      @PlcUnifiedValidation
      public abstract class Uf extends AppBaseEntity {

         
          @Id
           @GeneratedValue(strategy=GenerationType.AUTO, generator = "SE_UF")
          @Column(nullable=false,length=5)
          private Long id;

         
          @NotNull
          @Size(max = 60)
          @Column
          @PlcReference(testDuplicity=true)
          private String descricao;
         
          @NotNull
          @Size(max = 2)
          @Column
          private String sigla;
          public Long getId() {
              return id;
          }

          public void setId(Long id) {
              this.id=id;
          }

          public String getDescricao() {
              return descricao;
          }

          public void setDescricao(String descricao) {
              this.descricao=descricao;
          }

          public String getSigla() {
              return sigla;
          }

          public void setSigla(String sigla) {
              this.sigla=sigla;
          }

      }

       

       package pacote.entity;

      import javax.persistence.NamedQueries;
      import javax.persistence.NamedQuery;
      import com.powerlogic.jcompany.commons.annotation.PlcEntityTreeView;
      import javax.persistence.Access;
      import javax.persistence.SequenceGenerator;
      import javax.persistence.Table;
      import javax.persistence.AccessType;
      import com.powerlogic.jcompany.commons.config.stereotypes.SPlcEntity;
      import javax.persistence.Entity;
      import javax.persistence.Transient;
      /**
       * Classe Concreta gerada a partir do assistente
       */
      @SPlcEntity
      @Entity
      @Table(name="UF")
      @SequenceGenerator(name="SE_UF", sequenceName="SE_UF")
      @Access(AccessType.FIELD)

      @PlcEntityTreeView(classeLookup=true)

      @NamedQueries({
          @NamedQuery(name="UfEntity.queryMan", query="from UfEntity"),
          @NamedQuery(name="UfEntity.querySelLookup", query="select id as id, descricao as descricao from UfEntity where id = ? order by id asc")
      })
      public class UfEntity extends Uf {

          private static final long serialVersionUID = 1L;
           
          /*
           * Construtor padrão
           */
          public UfEntity() {
          }
          @Override
          public String toString() {
              return getDescricao();
          }

          @Transient
          private transient String indExcPlc = "N";    

          public void setIndExcPlc(String indExcPlc) {
              this.indExcPlc = indExcPlc;
          }

          public String getIndExcPlc() {
              return indExcPlc;
          }

      }

  • F24a4b3d0e8ba72374bf01a0393fe3c3?only path=false&size=50&d=404Marco Quiçula(usuário não autenticado)
    7 de Maio de 2011, 18:39

     

    Veja que obj1 refere-se à obj.uf, ou seja, à entidade de UF, e você está tentando procurar uma propriedade UF na própria entidade de UF.

  • 911c8cd54a8fa264fa05df75a3491e55?only path=false&size=50&d=404Cristian Poças(usuário não autenticado)
    9 de Maio de 2011, 16:09

     

    Eu descobri o erro. A classe MunicipioDAO tem duas linhas com a seguinte anotação:

    @PlcQueryParameter(name="uf", expression="obj1.uf = :uf") Uf uf

    para corrigir o basta mudar obj1 para obj. Então fica assim

    @PlcQueryParameter(name="uf", expression="obj.uf = :uf") Uf uf

    pelo menos para a pesquisa funciona.

     

    package pacote.persistence.jpa.municipio;

    import pacote.persistence.jpa.AppJpaDAO;
    import pacote.entity.MunicipioEntity;
    import com.powerlogic.jcompany.persistence.jpa.PlcQueryParameter;
    import pacote.entity.Uf;

    import java.util.List;

    import com.powerlogic.jcompany.persistence.jpa.PlcQuery;
    import com.powerlogic.jcompany.persistence.jpa.PlcQueryLineAmount;
    import com.powerlogic.jcompany.persistence.jpa.PlcQueryOrderBy;
    import com.powerlogic.jcompany.persistence.jpa.PlcQueryFirstLine;
    import com.powerlogic.jcompany.commons.annotation.PlcAggregationDAOIoC;
    import com.powerlogic.jcompany.commons.config.stereotypes.SPlcDataAccessObject;
    import com.powerlogic.jcompany.persistence.jpa.PlcQueryService;

    /**
     * Classe de Persistência gerada pelo assistente
     */

    @PlcAggregationDAOIoC(MunicipioEntity.class)
    @SPlcDataAccessObject
    @PlcQueryService
    public class MunicipioDAO extends AppJpaDAO  {

        @PlcQuery("querySel")
        public native List<MunicipioEntity> findList(
                @PlcQueryOrderBy String dynamicOrderByPlc,
                @PlcQueryFirstLine Integer primeiraLinhaPlc,
                @PlcQueryLineAmount Integer numeroLinhasPlc,           
                
                @PlcQueryParameter(name="descricao", expression="obj.descricao like '%' || :descricao ") String descricao,
                @PlcQueryParameter(name="uf", expression="obj1.uf = :uf") Uf uf
        );

        @PlcQuery("querySel")
        public native Long findCount(
               
                @PlcQueryParameter(name="descricao", expression="obj.descricao like '%' || :descricao ") String descricao,
                @PlcQueryParameter(name="uf", expression="obj1.uf = :uf") Uf uf
        );
       
    }
     

Lançamento do Jaguar 6.1 eminente...

6 de Maio de 2012, 8:13, por Desconhecido

O Jaguar 6.1 traz um grande leque de inovações dentre eles os exclusivos Jaguar Extensions, que possibilitam que plugins de arquitetura sejam criados com elegância através de técnicas de OCP (Open/Closed Principle). Este mecanimo possibilita que as implementações hiper-produtivas para Padrões de Caso de Uso de alto nível do Jaguar sejam expandidas através de componentes que encapsulam novos padrões, tanto para a parte OO (framework) quanto de geração de código complementar!



Evento Jaguar em Brasília, no dia19/10

3 de Outubro de 2011, 9:34, por Desconhecido

Quem estiver em Brasília no dia 19/10 não deixe de investir uma manhã neste evento, que é bem prático (mão na massa para desenvolver uma aplicação "do zero" com Java EE 6 / Jaguar) e traz insights importantes sobre tendências para a próxima década (BPMN 2.0, CMIS, Web Mobile com HTML5, etc.), implementados via Jaguar Extensions.



Ibrowse lança ferramenta de migração dos aplicativos desenvolvidos em Oracle Forms/Reports para o ambiente Jaguar

19 de Agosto de 2011, 16:37, por Desconhecido

A ferramenta lançada é o Telescope for Jaguar na modalidade SaaS, que visa a automação no processo de migração dos aplicativos desenvolvidos em Oracle Forms/Reports para o ambiente Java EE 6 na arquitetura Jaguar, que é uma das soluções do Portal do Software Publico.



Treinamento Jaguar em Brasília

27 de Julho de 2011, 14:47, por Desconhecido

Autor: Anna Carolina Duarte



A Ibrowse em parceria com a Universidade Luterana do Brasil (ULBRA) realiza o 1º curso de extensão em Jaguar

11 de Julho de 2011, 15:35, por Desconhecido

Autor: Justino Paulo