Relacionamento Pedido e Pessoa

Bom Dia Galera…

Primeiramente gostaria de pedir desculpas se este não for o lugar certo para postar esta duvida.

Bom to com uma duvida aqui tremenda… Como eu posso fazer o relacionamento entre Pedido E Cliente…

Vou postar os código das classes a baixo acho que vai ficar mais facil de entender a minha dificuldade de raciocinio

Classe Pesso

package bean;

//Imports

@Entity
@Table(name="tbPessoa", schema="public")
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name="pesTipo", discriminatorType=DiscriminatorType.STRING)
@DiscriminatorValue(value="pessoa")
public class Pessoa implements Serializable, PessoaInterface {

	private static final long serialVersionUID = 1L;
	
	@Id
	@SequenceGenerator(name="genPessoa", sequenceName="genPessoa", initialValue=1)
	@GeneratedValue(generator="genPessoa", strategy=GenerationType.AUTO)
	private Integer pesCod;
	private String pesNome;
	private String pesNomeCel;
	private String pesFone;
	private String pesFax;
	private String pesCel;
	
	@OneToMany(mappedBy="pessoa")
	private List<Endereco> enderecos;
	
	public Pessoa() {
		// TODO Auto-generated constructor stub
	}

       //Getter's e Setter's
}

Classe PessoaFisica

package bean;

//Import's

@Entity
@Table(name="tbPessoaFisica")
@DiscriminatorColumn(discriminatorType=DiscriminatorType.STRING)
@DiscriminatorValue(value="pesFisica")
public class PessoaFisica extends Pessoa implements Serializable, PessoaInterface {

	private static final long serialVersionUID = 1L;
	
	private String pfCpf;
	private String pfRg;
	private String pfRgUf;
	private Date pfDtNascimento;
	private String pfNomePai;
	private String pfNomeMae;
	
	private String pfEmpresa;
	private String pfEmpresaFone;
	private String pfEmpresaAdmisao;
	private String pfEmpresaResp;
	
	public PessoaFisica() {
		// TODO Auto-generated constructor stub
	}

        //Getter's e Setter's
}

Classe PessoaJuridica

package bean;

//Import's

@Entity
@Table(name="tbPessoaJuridica")
@DiscriminatorColumn(discriminatorType=DiscriminatorType.STRING)
@DiscriminatorValue(value="pesJuridica")
public class PessoaJuridica extends Pessoa implements Serializable, PessoaInterface {

	private static final long serialVersionUID = 1L;
	
	private String pjCnpj;
	private String pjIe;
	
	public PessoaJuridica() {
		// TODO Auto-generated constructor stub
	}

        //Getter's e Setter's
}

Classe Pedido

package bean;

//Import's

@Entity
@Table(name="tbPedido", schema="public")
public class Pedido implements Serializable {

	private static final long serialVersionUID = 1L;
	
	@Id
	@SequenceGenerator(name="genPedido", sequenceName="gendPedido", initialValue=1)
	@GeneratedValue(generator="genPedido", strategy=GenerationType.AUTO)
	private Integer pedCod;
	private Date pedData;
	private Date pedDataEntrega;
	
	private Pessoa pessoa

	
	public Pedido() {
		// TODO Auto-generated constructor stub
	}
}

Ali eu Coloquei uma atributo do tipo Pessoa.

Mas o Cliente pode ser tanto Juridica como Fisica como posso fazer esta associação…

Só que eu não faço a minima ideia de como fazer isto…

Alguém poderia me dar uma luz

Muito Obrigado pela atenção de todos

Olá Fabiano,

Bom, faça o mapeamento de forma idêntica você faria em um relacionamento 1-para-muitos. Não importa se a classe tem subclasses, você pode atribuí-las no seu programa, mas o relacionamento será com pessoa e não com uma das suas subclasses.

@ManyToOne(fetch= FetchType.LAZY)
@JoinColumn(name="pessoa", referencedColumnName = "fk_pessoa")
 private Pessoa pessoa;