Oracle.toplink.essentials.exceptions.DatabaseException - Error Code: -1

12 respostas
W

Boa tarde a todos.
Bom galera estou aprendo Java e estou tendo divilgudade de entende esse erro.
Se alguem do Forum pode me ajuda em agradeço.
Erro Gerado.

[TopLink Warning]: 2008.08.11 12:51:19.205–UnitOfWork(18291494)–Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007))): oracle.toplink.essentials.exceptions.DatabaseException
Internal Exception: java.sql.SQLException: O esquema ‘ROOT’ não existe
Error Code: -1
Call: SELECT CODIGOCARGO FROM CARGO
Exception in thread “AWT-EventQueue-0” Local Exception Stack:
Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007))): oracle.toplink.essentials.exceptions.DatabaseException
Internal Exception: java.sql.SQLException: O esquema ‘ROOT’ não existe
Error Code: -1
Call: SELECT CODIGOCARGO FROM CARGO

12 Respostas

Andre_Fonseca

Oi,

Como você está tentando se conectar? Coloque o código aqui entre as tags code.

O erro diz que você está tentando se conectar no esquema root e este não existe

Abs

danieldestro

Qual BD vocÊ usa? Como está a configuração do seu persistence unit (perssitence.xml)?
Parece que ele está tentando usar um esquema (usuário) que não existe.

W

persistencia XML

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
  <persistence-unit name="sifiscapPU" transaction-type="RESOURCE_LOCAL">
    <provider>oracle.toplink.essentials.PersistenceProvider</provider>
    <class>lib.database.Cargo</class>
    <properties>
      <property name="toplink.jdbc.url" value="jdbc:derby://localhost:1527/AtosPessoal"/>
      <property name="toplink.jdbc.user" value="root"/>
      <property name="toplink.jdbc.driver" value="org.apache.derby.jdbc.ClientDriver"/>
      <property name="toplink.jdbc.password" value="root"/>
    </properties>
  </persistence-unit>
</persistence>

Pacote Lib.database
arquivo Cargo.java

//*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package lib.database;

import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;

/**
 *
 * @author welitoncb
 */
@Entity
@Table(name = "CARGO")
@NamedQueries({@NamedQuery(name = "Cargo.findByCodunidgestora", query = "SELECT c FROM Cargo c WHERE c.codunidgestora = :codunidgestora"), @NamedQuery(name = "Cargo.findByCodigocargo", query = "SELECT c FROM Cargo c WHERE c.codigocargo = :codigocargo"), @NamedQuery(name = "Cargo.findByNome", query = "SELECT c FROM Cargo c WHERE c.nome = :nome"), @NamedQuery(name = "Cargo.findByTipo", query = "SELECT c FROM Cargo c WHERE c.tipo = :tipo"), @NamedQuery(name = "Cargo.findByMes", query = "SELECT c FROM Cargo c WHERE c.mes = :mes"), @NamedQuery(name = "Cargo.findByAno", query = "SELECT c FROM Cargo c WHERE c.ano = :ano"), @NamedQuery(name = "Cargo.findByRemessa", query = "SELECT c FROM Cargo c WHERE c.remessa = :remessa"), @NamedQuery(name = "Cargo.findByExercicio", query = "SELECT c FROM Cargo c WHERE c.exercicio = :exercicio"), @NamedQuery(name = "Cargo.findByChave", query = "SELECT c FROM Cargo c WHERE c.chave = :chave")})
public class Cargo implements Serializable {
    private static final long serialVersionUID = 1L;
    @Column(name = "CODUNIDGESTORA")
    private String codunidgestora;
    @Id
    @Column(name = "CODIGOCARGO", nullable = false)
    private String codigocargo;
    @Column(name = "NOME")
    private String nome;
    @Column(name = "TIPO")
    private String tipo;
    @Column(name = "MES", nullable = false)
    private String mes;
    @Column(name = "ANO", nullable = false)
    private String ano;
    @Column(name = "REMESSA", nullable = false)
    private String remessa;
    @Column(name = "EXERCICIO", nullable = false)
    private String exercicio;
    @Column(name = "CHAVE", nullable = false)
    private String chave;

    public Cargo() {
    }

    public Cargo(String codigocargo) {
        this.codigocargo = codigocargo;
    }

    public Cargo(String codigocargo, String mes, String ano, String remessa, String exercicio, String chave) {
        this.codigocargo = codigocargo;
        this.mes = mes;
        this.ano = ano;
        this.remessa = remessa;
        this.exercicio = exercicio;
        this.chave = chave;
    }

Pacote lib.gui.
Arquivo CargoTabela.java

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package lib.gui;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.swing.table.AbstractTableModel;
import lib.database.Cargo;

/**
 *
 * @author welitoncb
 */
public class CargoTabela extends AbstractTableModel{

    private  List listaIds;
    private ArrayList<Cargo> lista = new ArrayList();
    
    public CargoTabela(){
        EntityManagerFactory emf = javax.persistence.Persistence.createEntityManagerFactory("sifiscapPU");
        EntityManager em = emf.createEntityManager();
        
        listaIds = em.createQuery("SELECT c.codigocargo FROM Cargo c").getResultList();

        for(Iterator<String> it = listaIds.iterator(); it.hasNext();){
            String  elem = it.next();
            lista.add((Cargo) em.createNamedQuery("Cargo.findByCodigocargo").setParameter("codigocargo", elem).getSingleResult());
        }
        
        em.close();
    }
    public int getRowCount() {
        return lista.size();
    }

    public int getColumnCount() {
        return 5;
    }

    public Object getValueAt(int rowIndex, int columnIndex) {
       if(columnIndex == 0){
           return lista.get(rowIndex).getCodunidgestora();
       }else if(columnIndex == 1){
           return lista.get(rowIndex).getCodigocargo();
       }else if(columnIndex == 2){
           return lista.get(rowIndex).getNome();
       }else if(columnIndex == 4){
           return lista.get(rowIndex).getMes();
       }else if(columnIndex == 5){
           return lista.get(rowIndex).getTipo();
       }
       return null;
    }    
}
danieldestro

Era só pra colocar o persistence.xml, não seu código java.

Certifique-se que existe um usuário/esquema no seu BD chamado “root”.

W

Não existe esse usuario.

W

Tenho que cria.
Como faço?

W

Blz criei o esquema ROOT.
Agora o problema esta na consulta SQL.

W

Esse e a SQL.
listaIds = em.createQuery(“SELECT C.CODIGOCARGO FROM CARGO C”).getResultList();

W

Erro

Caused by: Exception [TOPLINK-8034] (Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007))): oracle.toplink.essentials.exceptions.EJBQLException
Exception Description: Error compiling the query [SELECT C.CODIGOCARGO FROM CARGO C]. Unknown abstract schema type [CARGO].

W

Agora e esse erro.

Caused by: Exception [TOPLINK-8025] (Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007))): oracle.toplink.essentials.exceptions.EJBQLException
Exception Description: Syntax error parsing the query [SELECT C.CODIGOCARGO FROM APP.CARGO C], line 1, column 30: unexpected token [.].
Internal Exception: line 1:30: unexpected token: .

Andre_Fonseca

Oi,

Você criou o esquema, agora precisa criar as tabelas correto??

Abs

danieldestro

Com “em.createQuery” você só pode usar JPQL (uma variação de SQL para JPA).
Para usar SQL, use “em.createNativeQuery”.

Criado 11 de agosto de 2008
Ultima resposta 11 de ago. de 2008
Respostas 12
Participantes 3