[quote=Hebert Coelho]Não tenha medo de ler o stack trace.
A causa do problema estava bem no final dela:
Está meio grego pra mim, o que devo fazer?
Vou colocar partes do códigos da aplicação:
// Entity //
package futebol.entities;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
@Entity
@Table(name="time")
public class TimeEntity {
@Id @GeneratedValue
private int id;
@Column(name="nome", nullable=false)
private String nome;
@Column(name="apelido", nullable=false)
private String apelido;
@OneToMany
List<JogadorEntity> jogador;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getApelido() {
return apelido;
}
public void setApelido(String apelido) {
this.apelido = apelido;
}
public List<JogadorEntity> getJogador() {
return jogador;
}
public void setJogador(List<JogadorEntity> jogador) {
this.jogador = jogador;
}
}
// Repository //
package futebol.repository;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.Query;
import futebol.bean.TimeBean;
import futebol.entities.TimeEntity;
public class TimeRepository {
private EntityManager gerenciador;
public TimeRepository(EntityManager gerenciador)
{
this.gerenciador = gerenciador;
}
public void adiciona(TimeEntity t)
{
this.gerenciador.persist(t);
}
public TimeBean busca(int id)
{
return this.gerenciador.find(TimeBean.class, id);
}
public List<TimeBean> buscaTodos()
{
Query query = this.gerenciador.createQuery("SELECT * FROM Time");
return query.getResultList();
}
}
// Bean //
[code]
package futebol.bean;
import java.io.Serializable;
import javax.faces.bean.ManagedBean;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import futebol.entities.TimeEntity;
import futebol.repository.TimeRepository;
@ManagedBean
public class TimeBean implements Serializable {
private static final long serialVersionUID = 1L;
private String nome;
private String apelido;
public void cadastrarTime() {
EntityManagerFactory factory = Persistence
.createEntityManagerFactory("futebol");
try {
TimeEntity time = new TimeEntity();
time.setNome(nome);
time.setApelido(apelido);
EntityManager gerenciador = factory.createEntityManager();
TimeRepository tr = new TimeRepository(gerenciador);
gerenciador.getTransaction().begin();
tr.adiciona(time);
gerenciador.getTransaction().commit();
} catch (Exception e) {
e.printStackTrace();
} finally {
factory.close();
}
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getApelido() {
return apelido;
}
public void setApelido(String apelido) {
this.apelido = apelido;
}
public static long getSerialversionuid() {
return serialVersionUID;
}
}[/code]
// Persistence.xml //
<?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="futebol" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<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/futebol"/>
<property name="javax.persistence.jdbc.user" value="root" />
<property name="javax.persistence.jdbc.password" value="" />
</properties>
</persistence-unit>
</persistence>
E a página XHTML
[code]
<?xml version="1.0" encoding="ISO-8859-1" ?>
<jsp:root xmlns:jsp=“http://java.sun.com/JSP/Page” xmlns:f=“http://java.sun.com/jsf/core” xmlns:h=“http://java.sun.com/jsf/html” version=“2.0”>
<jsp:directive.page language=“java”
contentType=“text/html; charset=ISO-8859-1” pageEncoding=“ISO-8859-1” />
jsp:text
]]>
</jsp:text>
jsp:text
<![CDATA[ ]]>
</jsp:text>
Cadastro de time
<table>
<caption colspan="2"><h3>Cadastro de time:</h3></caption>
<tr>
<td><h:outputLabel value="Nome:" for="txtNome" /></td>
<td><h:inputText maxlength="50" value="#{timeBean.nome}" id="txtNome" /></td>
</tr>
<tr>
<td><h:outputLabel value="Apelido:" for="txtApelido" /></td>
<td><h:inputText maxlength="50" value="#{timeBean.apelido}" id="txtApelido" /></td>
</tr>
<tr>
<td><h:commandButton value="Salvar Jogador" action="#{timeBean.cadastrarTime}" /></td>
</tr>
</table>
</h:form>
</center>
</f:view>
[/code]
Att, André Vieira