5
respostas

Projeto não reconhece persistence

Pessoal,

Estou utilizando o hibernate mais atual (5.5.5) Quando coloco o comando import na classe Conta, recebo o seguinte erro: The import javax.persistence cannot be resolved Vejam abaixo como ficou a classe conta e o persistence:

package br.com.caelum.financas.modelo;

import javax.persistence.Entity;


@Entity
public class Conta {

    private Integer Id;
    private String titular;
    private String numero;
    private String banco;
    private String agencia;

    public Integer getId() {
        return Id;
    }
    public void setId(Integer id) {
        Id = id;
    }
    public String getTitular() {
        return titular;
    }
    public void setTitular(String titular) {
        this.titular = titular;
    }
    public String getNumero() {
        return numero;
    }
    public void setNumero(String numero) {
        this.numero = numero;
    }
    public String getBanco() {
        return banco;
    }
    public void setBanco(String banco) {
        this.banco = banco;
    }
    public String getAgencia() {
        return agencia;
    }
    public void setAgencia(String agencia) {
        this.agencia = agencia;
    }

}

E o persistence

<persistence 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" version="2.0">
<!--  unidade de persistencia com o nome financas  -->
<persistence-unit name="financas">
<!--  Implementa��o do JPA, no nosso caso Hibernate  -->
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<!--  Aqui são listadas todas as entidades  -->
<class>br.com.caelum.financas.modelo.Conta</class>
<properties>
<!--  Propriedades JDBC  -->
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost/financas"/>
<property name="javax.persistence.jdbc.user" value="root"/>
<property name="javax.persistence.jdbc.password" value=""/>
<!--  Configura��es espec�ficas do Hibernate  -->
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect"/>
<property name="hibernate.hbm2ddl.auto" value="update"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.format_sql" value="true"/>
</properties>
</persistence-unit>
</persistence>
5 respostas

Fala aí Mario blz?

Cara acho que faltou você dizer qual dos campos é sua chave primária.

Olhando seu modelo eu creio que seja, o atributo id, sendo assim anote ele com @Id e caso queria que o valor dele seja gerado automaticamente além do @Id anote com @GeneratedValue.

Espero ter ajudado!

Fernando,

Eu não tinha colocado o o @Id e o @GeneratedValue porque como não houve o reconhecimento do @Entity eu tinha parado por aí. Agora coloquei, veja fonte abaixo. E o erro "The import javax.persistence cannot be resolved" agora dá para todos os imports de javax.persistence constantes do fonte

package br.com.caelum.financas.modelo;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;


@Entity
@SequenceGenerator(name = "SEQ_CONTAS", sequenceName = "SEQ_CONTAS", initialValue = 1)
public class Conta {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO, generator = "SEQ_CONTAS")
    private Integer Id;
    private String titular;
    private String numero;
    private String banco;
    private String agencia;

    public Integer getId() {
        return Id;
    }
    public void setId(Integer id) {
        Id = id;
    }
    public String getTitular() {
        return titular;
    }
    public void setTitular(String titular) {
        this.titular = titular;
    }
    public String getNumero() {
        return numero;
    }
    public void setNumero(String numero) {
        this.numero = numero;
    }
    public String getBanco() {
        return banco;
    }
    public void setBanco(String banco) {
        this.banco = banco;
    }
    public String getAgencia() {
        return agencia;
    }
    public void setAgencia(String agencia) {
        this.agencia = agencia;
    }

}

Oi Mario,

Provavelmente os JARs do Hibernate não estão no build path do seu projeto.

Dá uma conferida nos JARs que você tem importado e veja se os do Hibernate estão faltando.

Abraço!

Mario está usando os jars tudo certinho?

boa noite Mario Sandrini,

quando voce usa a versao mais atual vc tem q trocar o ´´´

org.hibernate.ejb.HibernatePersistence ´´´

indico a vc utilizar javaSE-1.6 e os arquivos que o professor traz na aula para que tudo de certo.

fiz este projeto tanto no eclipse quanto no netbeans deu tudo certo.

o eclipse eh um pouco mais fresco em relação as versoes vc tem que baixar muita coisa no netbeans isto si torna bem mais facil.

espero ter ajudado vc...

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software