0 Replies Latest reply on Jun 21, 2007 1:18 PM by Jorge Fernandes

    cannot instatiate abstract class

    Jorge Fernandes Newbie

      Hello, I have problems when a I try to list the elements of an abstract class. the exceptions is:

      Caused by: javax.ejb.EJBTransactionRolledbackException: javax.persistence.Persis
      tenceException: org.hibernate.InstantiationException: Cannot instantiate abstrac
      t class or interface: X

      this problem happens with some elements of X, not with all elements

      import java.util.Date;
      import javax.persistence.Entity;
      import javax.persistence.GeneratedValue;
      import javax.persistence.GenerationType;
      import javax.persistence.Id;
      import javax.persistence.Inheritance;
      import javax.persistence.InheritanceType;
      import javax.persistence.ManyToOne;
      import javax.persistence.Transient;


      @Entity
      @Inheritance(strategy = InheritanceType.JOINED)
      public abstract class X
      {
      public static final String SEM_ELEMENTO = " - ";

      private long id;

      private Date dataMovimentacao;


      private Date dataMovimentacaoSistema;

      private double quantidade;

      private long numeroMovimento;

      private String loginUsuario;

      private LinhaDeEstoque linhaDeEstoque = null;

      public X()
      {

      }

      public X(double consumoFinanceiro, Setor setor)
      {

      }

      public Date getDataMovimentacaoSistema()
      {
      return dataMovimentacaoSistema;
      }

      public void setDataMovimentacaoSistema(Date dataMovimentacaoSistema)
      {
      this.dataMovimentacaoSistema = dataMovimentacaoSistema;
      }

      public String getLoginUsuario()
      {
      return loginUsuario;
      }

      public void setLoginUsuario(String loginUsuario)
      {
      this.loginUsuario = loginUsuario;
      }

      public long getNumeroMovimento()
      {
      return numeroMovimento;
      }

      public void setNumeroMovimento(long numeroMovimento)
      {
      this.numeroMovimento = numeroMovimento;
      }

      public Date getDataMovimentacao() {
      return dataMovimentacao;
      }

      public void setDataMovimentacao(Date dataEntrada) {
      this.dataMovimentacao = dataEntrada;
      }

      @Id
      @GeneratedValue(strategy = GenerationType.AUTO)
      public long getId() {
      return id;
      }

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


      public double getQuantidade()
      {
      return quantidade;
      }

      public void setQuantidade(double quantidade)
      {
      this.quantidade = quantidade;
      }

      @ManyToOne
      public LinhaDeEstoque getLinhaDeEstoque()
      {
      return linhaDeEstoque;
      }

      public void setLinhaDeEstoque(LinhaDeEstoque linhaDeEstoque)
      {
      this.linhaDeEstoque = linhaDeEstoque;
      }

      @Transient
      public abstract String getTipoMovimentacao();

      @Transient
      public abstract String getValorMovimentacao();

      @Transient
      public abstract String getNumeroNotaFiscal();

      @Transient
      public abstract double getValorEntrada();

      @Transient
      public abstract Object getSetor();
      @Transient
      public abstract double getConsumoFinanceiro();

      }



      this is the code of my classes

      import javax.persistence.Entity;
      import javax.persistence.Inheritance;
      import javax.persistence.InheritanceType;

      @Entity
      public abstract class Y extends X{

      public Y()
      {
      super();
      }

      public Y(double consumoFinanceiro, Setor setor)
      {
      super(consumoFinanceiro, setor);
      }



      }

      import javax.persistence.Entity;
      import javax.persistence.ManyToOne;
      import javax.persistence.Transient;

      @Entity
      public class Z extends X
      {
      public static final String ENTRADA = "Entrada";

      private String numeroNotaFiscal;

      private Fornecedor fornecedor;

      private double valorEntrada;

      private String codigoFornecedor;


      public double getValorEntrada() {
      return valorEntrada;
      }

      public void setValorEntrada(double valorEntrada) {
      this.valorEntrada = valorEntrada;
      }

      @Override
      public String getNumeroNotaFiscal()
      {
      return numeroNotaFiscal;
      }

      public void setNumeroNotaFiscal(String numeroNotaFiscal)
      {
      this.numeroNotaFiscal = numeroNotaFiscal;
      }

      public void setFornecedor(Fornecedor fornecedor)
      {
      this.fornecedor = fornecedor;
      }

      @ManyToOne
      public Fornecedor getFornecedor()
      {
      return fornecedor;
      }

      public String getCodigoFornecedor() {
      return codigoFornecedor;
      }

      public void setCodigoFornecedor(String codigoFornecedor) {
      this.codigoFornecedor = codigoFornecedor;
      }

      @Override
      @Transient
      public String getTipoMovimentacao()
      {
      return ENTRADA;
      }

      @Override
      @Transient
      public String getValorMovimentacao()
      {
      return SEM_ELEMENTO;
      }

      @Override
      @Transient
      public Object getSetor()
      {
      return " - ";
      }

      @Override
      @Transient
      public double getConsumoFinanceiro() {
      // TODO Auto-generated method stub
      return 0;
      }
      }

      Someone can help me?
      Thank you