Olá, pessoal!
Então… To tentando desenvolver uma aplicação que informa o salário de uma pessoa física. Aí eu fiz uma tabela de feriados para controlar melhor o salário no fim do mês.
Fui fazer um teste p/ ver se a aplicação tá buscando as informações da tabela de feriados e tomei logo uma exceção dizendo que não conseguiu achar o ID que eu busquei, mas quando vou na minha tabela o ID existe.
Minha entidade:
package teste.persistencia.entidade;
import java.sql.Date;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.Table;
@Entity
@Table(name = "Feriados")
public class Feriados {
@Id
@JoinColumn(name = "id")
private int id;
@JoinColumn(name = "descricao")
private String descricao;
@JoinColumn(name = "data")
private Date data;
public Feriados(){}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
public Date getData() {
return data;
}
public void setData(Date data) {
this.data = data;
}
}
Meu persistence.xml:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0"
xmlns="http://java.sun.com/xml/ns/persistence">
<persistence-unit name="informaSalario">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>teste.persistencia.entidade.PessoaFisica</class>
<class>teste.persistencia.entidade.Feriados</class>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
<property name="hibernate.hbm2ddl.auto" value="update" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.format_sql" value="true" />
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/informaSalario" />
<property name="javax.persistence.jdbc.user" value="root" />
<property name="javax.persistence.jdbc.password" value="mendroot" />
</properties>
</persistence-unit>
</persistence>
Stacktrace:
Exception in thread "main" javax.persistence.EntityNotFoundException: Unable to find teste.persistencia.entidade.Feriados with id 1
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$JpaEntityNotFoundDelegate.handleEntityNotFound(EntityManagerFactoryBuilderImpl.java:139)
at org.hibernate.proxy.AbstractLazyInitializer.checkTargetState(AbstractLazyInitializer.java:242)
at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:159)
at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:266)
at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:68)
at teste.persistencia.entidade.Feriados_$$_jvst477_1.toString(Feriados_$$_jvst477_1.java)
at java.lang.String.valueOf(String.java:2849)
at java.io.PrintStream.println(PrintStream.java:821)
at teste.persistencia.main.SistemaSalario.main(SistemaSalario.java:34)
Método para retornar o resultado:
Feriados feriados = new Feriados();
EntityManagerFactory factory = Persistence.createEntityManagerFactory("informaSalario");
EntityManager em = factory.createEntityManager();
public Feriados carregaFeriadosId (int id){
feriados = em.getReference(Feriados.class, id);
return feriados;
}
Alguém sabe o que que está acontecendo aí?
