Olá pessoal estava tentando fazer a persistencia somente configurando pelo persistence.xml dentro da pasta META-INF dentro de src, e não configurando hibernate.cfg.xml queria só refrescar a memoria e então segui o tutorial do hebert http://uaihebert.com/?p=27 mas…
Com a classe entidade:
package matheus;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="user")
public class User{
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Integer id;
@Column
private String name;
@Column
private String password;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((id == null) ? 0 : id.hashCode());
result = prime * result + ((name == null) ? 0 : name.hashCode());
result = prime * result
+ ((password == null) ? 0 : password.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
User other = (User) obj;
if (id == null) {
if (other.id != null)
return false;
} else if (!id.equals(other.id))
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
if (password == null) {
if (other.password != null)
return false;
} else if (!password.equals(other.password))
return false;
return true;
}
public void setPassword(String password) {
this.password = password;
}
}
E o método main:
package matheus;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
public class main {
public static void main(String[] args) {
EntityManagerFactory emf = Persistence.createEntityManagerFactory("testeHibernate");
EntityManager em = emf.createEntityManager();
try {
em.getTransaction().begin();
User user = new User();
user.setName("fausto");
user.setPassword("123");
em.persist(user);
em.getTransaction().commit();
} catch (Exception e) {
em.getTransaction().rollback();
e.printStackTrace();
}finally{
emf.close();
}
System.out.println("Olha no banco deve ter dado certo.");
}
}
E simples deveria funcionar, mas além de não criar a tabela no banco, aparece no console o seguinte:
769 [main] INFO org.hibernate.impl.SessionFactoryObjectFactory - Not binding factory to JNDI, no JNDI name configured
java.lang.IllegalArgumentException: Unknown entity: matheus.User
at org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:671)
at matheus.main.main(main.java:20)
874 [main] INFO org.hibernate.impl.SessionFactoryImpl - closing
874 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - cleaning up connection pool: jdbc:mysql://localhost/testeHibernate