Erro ao tentar persistir no banco hibernate

Olá Javianos quando criei a primeira classe de entidade do banco de dados depois
criei a classe do controlador do jpa e quando a persisti deu certo! Agora tento criar essa outra olha o que me acontece:

public static void main(String[] args) throws NonexistentEntityException, SQLException {
       /*
        FramePrincipal framePrincipal = new FramePrincipal();
        framePrincipal.setLocationRelativeTo(null);
        framePrincipal.setExtendedState(JFrame.MAXIMIZED_BOTH);
        framePrincipal.setVisible(true);

        *
        */
        Safgpr safgpr = new Safgpr();
        safgpr.setDesgpr("teste");
        SafgprJpaController safgprJpaController = new SafgprJpaController();
        safgprJpaController.create(safgpr);
    }

o erro:
[EL Info]: 2011-06-14 23:09:04.56–ServerSession(29131495)–EclipseLink, version: Eclipse Persistence Services - 2.0.2.v20100323-r6872
[EL Info]: 2011-06-14 23:09:04.949–ServerSession(29131495)–file:/C:/Users/paulo/Documents/NetBeansProjects/Jvisage/build/classes/_JVisagePU login successful
Exception in thread “main” java.lang.IllegalArgumentException: Object: vo.Safgpr[codgpr=null] is not a known entity type.
at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.registerNewObjectForPersist(UnitOfWorkImpl.java:4184)
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.persist(EntityManagerImpl.java:368)
at controladoresJPA.SafgprJpaController.create(SafgprJpaController.java:46)
at jvisage.Main.main(Main.java:42)
Java Result: 1
CONSTRUÍDO COM SUCESSO (tempo total: 2 segundos)

nao sei porque ele diz que o vo.Safgpr[codgpr=null] is not a known entity type.
pois a outra classe persiste… e eu ja adicionei esta classe em classes de entidades.
O que será ? agradeço desde já.

Hey Brow,

vc crio a orm ? ou adiciono as annotation na classe ?
adiciono a classe que vc quer persisti no arquivo de configuração do hibernate ?

Desculpe a demora mais… Escqueci de falar que sou iniciante de Hibernate e gostaria muito de saber
onde crio esse orm e adiciono os annotation uso netbeans 6.9 ja consegui persistir uma outra entidade mais
essa outra nova que criei não persisti obrigado pela atenção.

Olá pessoal, ja adicionei as classes de entidade no arquivo de configuração quando mando o
objeto dar um

pessoa.Jpa.create(pessoa);
ta dando certo! Mas quando mando dar um destroy
olha a exceção que me retorna:
[EL Info]: 2011-06-17 19:46:25.289–ServerSession(5324129)–EclipseLink, version: Eclipse Persistence Services - 2.0.2.v20100323-r6872
[EL Info]: 2011-06-17 19:46:25.83–ServerSession(5324129)–file:/C:/Users/paulo/Documents/NetBeansProjects/Jvisage/build/classes/_JVisagePU login successful
Exception in thread “AWT-EventQueue-0” java.lang.IllegalArgumentException: Unknown entity bean class: class vo.Safcve, please verify that this class has been marked with the @Entity annotation.
at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.getReference(UnitOfWorkImpl.java:5839)
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.getReference(EntityManagerImpl.java:1186)
at controladoresJPA.SafcveJpaController.destroy(SafcveJpaController.java:86)
at visao.FrameClassificacao.excluir(FrameClassificacao.java:97)
at visao.FrameClassificacao.jBExcluiActionPerformed(FrameClassificacao.java:626)

Como tá teu arquivo de configuração cara?

Vc tá usando o Hibernate como provider para o JPA? pois pelo erro parece estar usando EclipseLink

Coloca o código da entidade também, daí fica mais fácil, pois deve haver alguma diferença no teu mapeamento.

Olá amigo obrigado pela atenção ai
colei todo o codigo de uma das classes de persistencia
o engraçado é que uma das minha classes grava no banco bunitinho e excluji e altera mas
esta que postei apenas inclui da um create, e na hora de dar um destroy da o erro la de cima
e tenho uma outra que nem funciona o create de uma olhada no codigo da classe
que apenas nao da um destroy, e o xml do arquivo de configuração ta no final… obrigado desde já.

@Entity
@Table(name = "safcve")
@NamedQueries({
    @NamedQuery(name = "Safcve.findAll", query = "SELECT s FROM Safcve s"),
    @NamedQuery(name = "Safcve.findByLstMv", query = "SELECT s FROM Safcve s WHERE s.lstMv = :lstMv"),
    @NamedQuery(name = "Safcve.findByChkDl", query = "SELECT s FROM Safcve s WHERE s.chkDl = :chkDl"),
    @NamedQuery(name = "Safcve.findByCodcve", query = "SELECT s FROM Safcve s WHERE s.codcve = :codcve"),
    @NamedQuery(name = "Safcve.findByDescve", query = "SELECT s FROM Safcve s WHERE s.descve = :descve"),
    @NamedQuery(name = "Safcve.findByCodtrb", query = "SELECT s FROM Safcve s WHERE s.codtrb = :codtrb"),
    @NamedQuery(name = "Safcve.findByTrbicm", query = "SELECT s FROM Safcve s WHERE s.trbicm = :trbicm"),
    @NamedQuery(name = "Safcve.findByIcmant", query = "SELECT s FROM Safcve s WHERE s.icmant = :icmant"),
    @NamedQuery(name = "Safcve.findByTrbiss", query = "SELECT s FROM Safcve s WHERE s.trbiss = :trbiss"),
    @NamedQuery(name = "Safcve.findByRedbas", query = "SELECT s FROM Safcve s WHERE s.redbas = :redbas"),
    @NamedQuery(name = "Safcve.findByImpduf", query = "SELECT s FROM Safcve s WHERE s.impduf = :impduf"),
    @NamedQuery(name = "Safcve.findByParduf", query = "SELECT s FROM Safcve s WHERE s.parduf = :parduf"),
    @NamedQuery(name = "Safcve.findByImpfuf", query = "SELECT s FROM Safcve s WHERE s.impfuf = :impfuf"),
    @NamedQuery(name = "Safcve.findByParfuf", query = "SELECT s FROM Safcve s WHERE s.parfuf = :parfuf"),
    @NamedQuery(name = "Safcve.findByCtrsld", query = "SELECT s FROM Safcve s WHERE s.ctrsld = :ctrsld"),
    @NamedQuery(name = "Safcve.findByPrcvvi", query = "SELECT s FROM Safcve s WHERE s.prcvvi = :prcvvi"),
    @NamedQuery(name = "Safcve.findByVlrvvi", query = "SELECT s FROM Safcve s WHERE s.vlrvvi = :vlrvvi"),
    @NamedQuery(name = "Safcve.findByPrcvpr", query = "SELECT s FROM Safcve s WHERE s.prcvpr = :prcvpr"),
    @NamedQuery(name = "Safcve.findByVlrvpr", query = "SELECT s FROM Safcve s WHERE s.vlrvpr = :vlrvpr"),
    @NamedQuery(name = "Safcve.findByCodser", query = "SELECT s FROM Safcve s WHERE s.codser = :codser")})
public class Safcve implements Serializable {
    private static final long serialVersionUID = 1L;
    @Column(name = "LST_MV")
    @Temporal(TemporalType.TIMESTAMP)
    private Date lstMv;
    @Column(name = "CHK_DL")
    private Character chkDl;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "CODCVE")
    private Integer codcve;
    @Column(name = "DESCVE")
    private String descve;
    @Column(name = "CODTRB")
    private String codtrb;
    @Column(name = "TRBICM")
    private Character trbicm;
    @Column(name = "ICMANT")
    private Character icmant;
    @Column(name = "TRBISS")
    private Character trbiss;
    @Column(name = "REDBAS")
    private Long redbas;
    @Column(name = "IMPDUF")
    private Long impduf;
    @Column(name = "PARDUF")
    private Integer parduf;
    @Column(name = "IMPFUF")
    private Long impfuf;
    @Column(name = "PARFUF")
    private Integer parfuf;
    @Column(name = "CTRSLD")
    private Character ctrsld;
    @Column(name = "PRCVVI")
    private Long prcvvi;
    @Column(name = "VLRVVI")
    private Long vlrvvi;
    @Column(name = "PRCVPR")
    private Long prcvpr;
    @Column(name = "VLRVPR")
    private Long vlrvpr;
    @Column(name = "CODSER")
    private String codser;

    public Safcve() {
    }

    public Safcve(Integer codcve) {
        this.codcve = codcve;
    }

    public Date getLstMv() {
        return lstMv;
    }

    public void setLstMv(Date lstMv) {
        this.lstMv = lstMv;
    }

    public Character getChkDl() {
        return chkDl;
    }

    public void setChkDl(Character chkDl) {
        this.chkDl = chkDl;
    }

    public Integer getCodcve() {
        return codcve;
    }

    public void setCodcve(Integer codcve) {
        this.codcve = codcve;
    }

    public String getDescve() {
        return descve;
    }

    public void setDescve(String descve) {
        this.descve = descve;
    }

    public String getCodtrb() {
        return codtrb;
    }

    public void setCodtrb(String codtrb) {
        this.codtrb = codtrb;
    }

    public Character getTrbicm() {
        return trbicm;
    }

    public void setTrbicm(Character trbicm) {
        this.trbicm = trbicm;
    }

    public Character getIcmant() {
        return icmant;
    }

    public void setIcmant(Character icmant) {
        this.icmant = icmant;
    }

    public Character getTrbiss() {
        return trbiss;
    }

    public void setTrbiss(Character trbiss) {
        this.trbiss = trbiss;
    }

    public Long getRedbas() {
        return redbas;
    }

    public void setRedbas(Long redbas) {
        this.redbas = redbas;
    }

    public Long getImpduf() {
        return impduf;
    }

    public void setImpduf(Long impduf) {
        this.impduf = impduf;
    }

    public Integer getParduf() {
        return parduf;
    }

    public void setParduf(Integer parduf) {
        this.parduf = parduf;
    }

    public Long getImpfuf() {
        return impfuf;
    }

    public void setImpfuf(Long impfuf) {
        this.impfuf = impfuf;
    }

    public Integer getParfuf() {
        return parfuf;
    }

    public void setParfuf(Integer parfuf) {
        this.parfuf = parfuf;
    }

    public Character getCtrsld() {
        return ctrsld;
    }

    public void setCtrsld(Character ctrsld) {
        this.ctrsld = ctrsld;
    }

    public Long getPrcvvi() {
        return prcvvi;
    }

    public void setPrcvvi(Long prcvvi) {
        this.prcvvi = prcvvi;
    }

    public Long getVlrvvi() {
        return vlrvvi;
    }

    public void setVlrvvi(Long vlrvvi) {
        this.vlrvvi = vlrvvi;
    }

    public Long getPrcvpr() {
        return prcvpr;
    }

    public void setPrcvpr(Long prcvpr) {
        this.prcvpr = prcvpr;
    }

    public Long getVlrvpr() {
        return vlrvpr;
    }

    public void setVlrvpr(Long vlrvpr) {
        this.vlrvpr = vlrvpr;
    }

    public String getCodser() {
        return codser;
    }

    public void setCodser(String codser) {
        this.codser = codser;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (codcve != null ? codcve.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Safcve)) {
            return false;
        }
        Safcve other = (Safcve) object;
        if ((this.codcve == null && other.codcve != null) || (this.codcve != null && !this.codcve.equals(other.codcve))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "vo.Safcve[codcve=" + codcve + "]";
    }

arquivo xml de configuração…

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.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_2_0.xsd">
  <persistence-unit name="JVisagePU" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <class>vo.Safcve</class>
    <class>vo.Safuni</class>
    <class>vo.Safgpr</class>
    <properties>
      <property name="hibernate.connection.username" value="root"/>
      <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
      <property name="hibernate.connection.password" value="123"/>
      <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/visage"/>
    </properties>
  </persistence-unit>
</persistence>

Alguém ai tem alguma ideia do que possa ser isso?

é pelo jeito tua classe tá anotada certinho e teu arquivo de configuração também.

Só pra desencargo, vc tem algum outro arquivo de configuração na mesma pasta?

se não tiver, não consegui identificar o erro pelo que vc passou, apesar da mensagem de erro ser clara, não está sendo possível carregar a classe.

A última dica q posso te dar, é verificar se a classe realmente está no lugar em que você disse no arquivo.

vlw