Minha classe está retornando o seguinte erro ao tentar realizar consulta:
java.lang.IllegalArgumentException: An exception occured while creating a query in EntityManager
at oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerImpl.createQuery(EntityManagerImpl.java:209)
at pojo.TestePojo.main(TestePojo.java:25)
Caused by: Exception [TOPLINK-8034] (Oracle TopLink Essentials - 2.0.1 (Build b04-fcs (04/11/2008))): oracle.toplink.essentials.exceptions.EJBQLException
Exception Description: Error compiling the query [SELECT a FROM Administrador a WHERE a.login = :login]. Unknown abstract schema type [Administrador].
at oracle.toplink.essentials.exceptions.EJBQLException.unknownAbstractSchemaType(EJBQLException.java:494)
at oracle.toplink.essentials.internal.parsing.ParseTreeContext.classForSchemaName(ParseTreeContext.java:163)
at oracle.toplink.essentials.internal.parsing.SelectNode.getClassOfFirstVariable(SelectNode.java:366)
at oracle.toplink.essentials.internal.parsing.SelectNode.getReferenceClass(SelectNode.java:354)
at oracle.toplink.essentials.internal.parsing.ParseTree.getReferenceClass(ParseTree.java:463)
at oracle.toplink.essentials.internal.parsing.ParseTree.adjustReferenceClassForQuery(ParseTree.java:103)
at oracle.toplink.essentials.internal.parsing.EJBQLParseTree.populateReadQueryInternal(EJBQLParseTree.java:127)
at oracle.toplink.essentials.internal.parsing.EJBQLParseTree.populateQuery(EJBQLParseTree.java:108)
at oracle.toplink.essentials.internal.ejb.cmp3.base.EJBQueryImpl.buildEJBQLDatabaseQuery(EJBQueryImpl.java:219)
at oracle.toplink.essentials.internal.ejb.cmp3.base.EJBQueryImpl.buildEJBQLDatabaseQuery(EJBQueryImpl.java:189)
[TopLink Info]: 2008.10.25 03:00:10.515--ServerSession(29346106)--file:/C:/Documents%20and%20Settings/Gilmar/My%20Documents/NetBeansProjects/helpdesk/build/web/WEB-INF/classes/-admin logout successful
at oracle.toplink.essentials.internal.ejb.cmp3.base.EJBQueryImpl.buildEJBQLDatabaseQuery(EJBQueryImpl.java:153)
at oracle.toplink.essentials.internal.ejb.cmp3.base.EJBQueryImpl.<init>(EJBQueryImpl.java:114)
at oracle.toplink.essentials.internal.ejb.cmp3.base.EJBQueryImpl.<init>(EJBQueryImpl.java:99)
at oracle.toplink.essentials.internal.ejb.cmp3.EJBQueryImpl.<init>(EJBQueryImpl.java:86)
at oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerImpl.createQuery(EntityManagerImpl.java:204)
... 1 more
Minha classe pojo
package pojo;
import java.io.Serializable;
import javax.persistence.*;
@Entity
@Table(name = "Administrador")
public class PojoAdministrador implements Serializable {
private String login;
private String senha;
@Id
@Column(name = "login")
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
@Column(name = "senha")
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
}
persistence.xml
<?xml version="1.0" encoding="windows-1252" ?>
<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"
version="1.0" xmlns="http://java.sun.com/xml/ns/persistence">
<persistence-unit name="aluno">
<provider>oracle.toplink.essentials.PersistenceProvider</provider>
<class>pojo.PojoAluno</class>
<properties>
<property name="toplink.jdbc.driver" value="org.gjt.mm.mysql.Driver" />
<property name="toplink.jdbc.url" value="jdbc:mysql://localhost:3306/helpdesk"></property>
<property name="toplink.jdbc.user" value="root" />
<property name="toplink.jdbc.password" value="" />
</properties>
</persistence-unit>
<persistence-unit name="admin">
<provider>oracle.toplink.essentials.PersistenceProvider</provider>
<class>pojo.PojoAdministrador</class>
<properties>
<property name="toplink.jdbc.driver" value="org.gjt.mm.mysql.Driver" />
<property name="toplink.jdbc.url" value="jdbc:mysql://localhost:3306/helpdesk"></property>
<property name="toplink.jdbc.user" value="root" />
<property name="toplink.jdbc.password" value="" />
</properties>
</persistence-unit>
<persistence-unit name="chamado">
<provider>oracle.toplink.essentials.PersistenceProvider</provider>
<class>pojo.PojoChamado</class>
<properties>
<property name="toplink.jdbc.driver" value="org.gjt.mm.mysql.Driver" />
<property name="toplink.jdbc.url" value="jdbc:mysql://localhost:3306/helpdesk"></property>
<property name="toplink.jdbc.user" value="root" />
<property name="toplink.jdbc.password" value="" />
</properties>
</persistence-unit>
<persistence-unit name="departamento">
<provider>oracle.toplink.essentials.PersistenceProvider</provider>
<class>pojo.PojoDepartamento</class>
<properties>
<property name="toplink.jdbc.driver" value="org.gjt.mm.mysql.Driver" />
<property name="toplink.jdbc.url" value="jdbc:mysql://localhost:3306/helpdesk"></property>
<property name="toplink.jdbc.user" value="root" />
<property name="toplink.jdbc.password" value="" />
</properties>
</persistence-unit>
<persistence-unit name="operador">
<provider>oracle.toplink.essentials.PersistenceProvider</provider>
<class>pojo.PojoOperador</class>
<properties>
<property name="toplink.jdbc.driver" value="org.gjt.mm.mysql.Driver" />
<property name="toplink.jdbc.url" value="jdbc:mysql://localhost:3306/helpdesk"></property>
<property name="toplink.jdbc.user" value="root" />
<property name="toplink.jdbc.password" value="" />
</properties>
</persistence-unit>
<persistence-unit name="postchamado">
<provider>oracle.toplink.essentials.PersistenceProvider</provider>
<class>pojo.PojoPostChamado</class>
<properties>
<property name="toplink.jdbc.driver" value="org.gjt.mm.mysql.Driver" />
<property name="toplink.jdbc.url" value="jdbc:mysql://localhost:3306/helpdesk"></property>
<property name="toplink.jdbc.user" value="root" />
<property name="toplink.jdbc.password" value="" />
</properties>
</persistence-unit>
<persistence-unit name="turma">
<provider>oracle.toplink.essentials.PersistenceProvider</provider>
<class>pojo.PojoTurma</class>
<properties>
<property name="toplink.jdbc.driver" value="org.gjt.mm.mysql.Driver" />
<property name="toplink.jdbc.url" value="jdbc:mysql://localhost:3306/helpdesk"></property>
<property name="toplink.jdbc.user" value="root" />
<property name="toplink.jdbc.password" value="" />
</properties>
</persistence-unit>
</persistence>
classe TestePojo
package pojo;
import javax.persistence.*;
import javax.swing.JOptionPane;
public class TestePojo {
public static void main(String[] args) {
EntityManagerFactory emf = Persistence.createEntityManagerFactory("admin");
EntityManager em = emf.createEntityManager();
String s = "";
em.getTransaction().begin();
try {
Query consulta = em.createQuery("SELECT a FROM Administrador a WHERE a.login = :login");
consulta.setParameter("login", "admin");
PojoAdministrador p = (PojoAdministrador) consulta.getSingleResult();
s += p.getLogin() + " " + p.getSenha() + "\n";
JOptionPane.showMessageDialog(null, s);
} catch (NoResultException e) {
e.printStackTrace();
} catch (NonUniqueResultException e) {
e.printStackTrace();
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e.getStackTrace());
em.getTransaction().rollback();
e.printStackTrace();
}
em.close();
emf.close();
System.exit(0);
}
}
Estou usando o mysql 5.