Problema no @GeneratedValue(generator = "generator")

2 respostas
P

Ola pessoa sou iniciante no mundo java e estou com um problema que não consigo resolver.

Estou utilizando JSF + Hibernate + JPA + Glassfish

Tenho duas entidades:

Pessoas:

package br.com.teste.entidades;

import java.io.Serializable;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToOne;
import javax.persistence.Table;

@Entity
@Table(name="inf_pessoas")
public class Pessoas implements Serializable{

	private static final long serialVersionUID = -5808864627029716250L;
	
	private Integer codigo;
	private String email;
	private PessoasFisicas pessoaFisica;
	
	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	@Column(name="pss_cod", unique = true, nullable = false)
	public Integer getCodigo() {
		return codigo;
	}
	
	public void setCodigo(Integer codigo) {
		this.codigo = codigo;
	}
	
	@Column(name="pss_email", unique=true, length = 40)
	public String getEmail() {
		return email;
	}
	
	public void setEmail(String email) {
		this.email = email;
	}

	@OneToOne(fetch=FetchType.LAZY, mappedBy = "pessoas", cascade = CascadeType.ALL)
	public PessoasFisicas getPessoaFisica() {
		return pessoaFisica;
	}

	public void setPessoaFisica(PessoasFisicas pessoaFisica) {
		this.pessoaFisica = pessoaFisica;
	}
	
}

e Pessoa Fisica:

package br.com.teste.entidades;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToOne;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;

import org.hibernate.annotations.GenericGenerator;
import org.hibernate.annotations.Parameter;

@Entity
@Table(name="inf_pessoas_fisicas")
public class PessoasFisicas implements Serializable{

	private static final long serialVersionUID = 7681183679813649105L;

	private Integer codigo;
	private Pessoas pessoas;
	private String nome;
	
	@Id
	@GeneratedValue(generator = "generator")
	@GenericGenerator(name = "generator", strategy = "foreign", 
	parameters = @Parameter(name = "property", value = "pessoas"))
	@Column(name = "psf_pss_cod", unique = true, nullable = false)
	public Integer getCodigo() {
		return codigo;
	}
	public void setCodigo(Integer codigo) {
		this.codigo = codigo;
	}
	
	@OneToOne(fetch=FetchType.LAZY)
	@PrimaryKeyJoinColumn
	public Pessoas getPessoas() {
		return pessoas;
	}
	
	public void setPessoas(Pessoas pessoas) {
		this.pessoas = pessoas;
	}
	
	public String getNome() {
		return nome;
	}
	
	public void setNome(String nome) {
		this.nome = nome;
	}
	
}

Na segunda entidade onde se encontra:

@GeneratedValue(generator = “generator”) – LINHA 28

“generator” esta grifado de vermelho informando o erro Unresolved generator name “generator”

O que deve estar causando isso?

Obrigado!

2 Respostas

A

cara,

ve nesse link como usar esse atributo generator, http://www.java2s.com/Tutorial/Java/0355__JPA/GeneratedValueBasedOnSequenceGenerator.htm

t+

alternative

cara pessoaFisica pode extender de Pessoas portanto nao necessitaria ter um id para o mesmo.

att.

Criado 24 de outubro de 2011
Ultima resposta 24 de out. de 2011
Respostas 2
Participantes 3