Problema de mapeamento com JPA

Olá Pessoal,

Estou estudando JPA e peguei algumas video-aulas para ajudar, porém estou tendo problema em persistir os dados, já fiz uma busca na net mas não obtive sucesso, se alguém puder me ajudar ficarei agradecido.

O erro é o seguinte:

As Entidades mapeadas:

	@OneToMany (mappedBy = "project", cascade = CascadeType.ALL, fetch = FetchType.EAGER )
         private List<Iteration> iterations;
	@ManyToOne(cascade = CascadeType.ALL)
	@JoinColumn(name = "projectId", referencedColumnName ="id")
	private Project project;
@SuppressWarnings("serial")
@Entity
@Table(schema="frasys")
public class Project implements Serializable {

	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	private int id;
	private String name;
	private String description;
	private Date lastDate;
	private String location;
	
	@OneToMany (mappedBy = "project", cascade = CascadeType.ALL, fetch = FetchType.EAGER )
	private List<Iteration> iterations;

	public Project() {
	}
	
	public void addIteration(Iteration iteration) {
		iterations.add(iteration);
	}

	public final int getId() {
		return id;
	}

	public final void setId(int id) {
		this.id = id;
	}

	public final String getName() {
		return name;
	}

	public final void setName(String name) {
		this.name = name;
	}

	public final String getDescription() {
		return description;
	}

	public final void setDescription(String description) {
		this.description = description;
	}

	public final Date getLastDate() {
		return lastDate;
	}

	public final void setLastDate(Date lastDate) {
		this.lastDate = lastDate;
	}

	public final String getLocation() {
		return location;
	}

	public final void setLocation(String location) {
		this.location = location;
	}

	public final List<Iteration> getIterations() {
		return iterations;
	}

	public final void setIterations(List<Iteration> iterations) {
		this.iterations = iterations;
	}
	
}
package net.fratech.frasys.domain;

import java.util.Date;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;

@Entity
public class Iteration {

	@Id
	private int id;

	@Column(nullable = false)
	private Date startDate;

	@Column(nullable = false)
	private Date endDate;
	private String name;

	@OneToMany(mappedBy = "iteration", cascade = CascadeType.ALL)
	private List<Item> itens;

	@ManyToOne(cascade = CascadeType.ALL)
	@JoinColumn(name = "projectId", referencedColumnName ="id")
	private Project project;

	public Iteration() {
	}

	public final int getId() {
		return id;
	}

	public final void setId(int id) {
		this.id = id;
	}

	public final Date getStartDate() {
		return startDate;
	}

	public final void setStartDate(Date startDate) {
		this.startDate = startDate;
	}

	public final Date getEndDate() {
		return endDate;
	}

	public final void setEndDate(Date endDate) {
		this.endDate = endDate;
	}

	public final String getName() {
		return name;
	}

	public final void setName(String name) {
		this.name = name;
	}

	public final List<Item> getItens() {
		return itens;
	}

	public final void setItens(List<Item> itens) {
		this.itens = itens;
	}

	public final Project getProject() {
		return project;
	}

	public final void setProject(Project project) {
		this.project = project;
	}

}

Uma pequena observação que fiz é que esta faltando vc especificar o @Table(schema=“frasys”) na classe Iteration assim como fez em Project

Opa Marcos,

Só para entendimento, então sempre que eu tiver esse tipo de e relacionamento devo especificar essa anotação na entidade que está obtendo o id??

Opa Marcos,

Só para entendimento, então sempre que eu tiver esse tipo de e relacionamento devo especificar essa anotação na entidade que está obtendo o id?? [/quote]

Opa
A questão não seria utilizar em todas as classes que está obtendo o id e sim em todoas as classes persistentes, pelo menos é assim que usamos aqui na empresa.
Talvez até funcione sem a anotação @table , eu n testei ainda, aqui no meu trabalho os nomes das classes não são os mesmos da tabela, entao somos obrigados a usar o @table para especificar os nomes dela, mas sei que a espeficicação schema do @table não é necessário para alguns bancos como é o caso do SqlServer.
Porém n faz sentindo usar em uma classe e em outra n, por isso ou tire de todas ou coloque em todas.

Espero ter ajudado
Abs

Opa Marcos,

Só para entendimento, então sempre que eu tiver esse tipo de e relacionamento devo especificar essa anotação na entidade que está obtendo o id?? [/quote]

Opa
A questão não seria utilizar em todas as classes que está obtendo o id e sim em todoas as classes persistentes, pelo menos é assim que usamos aqui na empresa.
Talvez até funcione sem a anotação @table , eu n testei ainda, aqui no meu trabalho os nomes das classes não são os mesmos da tabela, entao somos obrigados a usar o @table para especificar os nomes dela, mas sei que a espeficicação schema do @table não é necessário para alguns bancos como é o caso do SqlServer.
Porém n faz sentindo usar em uma classe e em outra n, por isso ou tire de todas ou coloque em todas.

Espero ter ajudado
Abs[/quote]

Marcos,

Vou testar aqui.

vlw

Opa Marcos,

Só para entendimento, então sempre que eu tiver esse tipo de e relacionamento devo especificar essa anotação na entidade que está obtendo o id?? [/quote]

Opa
A questão não seria utilizar em todas as classes que está obtendo o id e sim em todoas as classes persistentes, pelo menos é assim que usamos aqui na empresa.
Talvez até funcione sem a anotação @table , eu n testei ainda, aqui no meu trabalho os nomes das classes não são os mesmos da tabela, entao somos obrigados a usar o @table para especificar os nomes dela, mas sei que a espeficicação schema do @table não é necessário para alguns bancos como é o caso do SqlServer.
Porém n faz sentindo usar em uma classe e em outra n, por isso ou tire de todas ou coloque em todas.

Espero ter ajudado
Abs[/quote]

Marcos,

Vou testar aqui.

vlw[/quote]

Marcos éra isso mesmo que você disse.

vlw