Problemas criação de tabelas usando JPA + JSF

Boa tarde a todos
Estou com o seguinte problema, ao cadastrar uma pessoa usando o jsf apresenta o erro:
javax.servlet.ServletException: java.lang.IllegalArgumentException: Object: entidades.Pessoa@3492c1a4 is not a known entity type.
Debugando cheguei ao erro
javax.servlet.ServletException: javax.persistence.RollbackException: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.5.0.v20130507-3faac2b): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: org.postgresql.util.PSQLException: ERRO: relação “pessoa” não existe
Posição: 13

Classe Pessoa

package entidades;

import java.io.Serializable;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;

@Entity
@SequenceGenerator(name="table_id_seq", sequenceName="table_id_seq", allocationSize=1)
public class Pessoa implements Serializable{

	/**
	 * 
	 */
	private static final long serialVersionUID = 308431647573583250L;
	
	@Id
	@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="table_id_seq")
	private Long idPessoa;
	
	private String nomeFantasia;
	
	private String razaoSocial;

	public Long getIdPessoa() {
		return idPessoa;
	}

	public void setIdPessoa(Long idPessoa) {
		this.idPessoa = idPessoa;
	}

	public String getNomeFantasia() {
		return nomeFantasia;
	}

	public void setNomeFantasia(String nomeFantasia) {
		this.nomeFantasia = nomeFantasia;
	}

	public String getRazaoSocial() {
		return razaoSocial;
	}

	public void setRazaoSocial(String razaoSocial) {
		this.razaoSocial = razaoSocial;
	}
	
}

Classe bean correspondente.

package beans;

import javax.faces.bean.ManagedBean;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

import entidades.Pessoa;
import persistence.DaoImpl;
import persistence.JpaUtil;

@ManagedBean(name = "pessoaBean")
public class PessoaBean {

	private Pessoa pessoa;
	
	public PessoaBean(){
		pessoa = new Pessoa();
	}

	public void gravar(Pessoa p) {
		
		EntityManagerFactory fac = Persistence
				.createEntityManagerFactory("SoftwareWeb");

		EntityManager em = fac.createEntityManager();
		em.getTransaction().begin();
		em.persist(pessoa);
		em.getTransaction().commit();
		em.close();
	}

	public Pessoa getPessoa() {
		return pessoa;
	}

	public void setPessoa(Pessoa pessoa) {
		this.pessoa = pessoa;
	}

}

Persistence

<?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="SoftwareWeb" transaction-type="RESOURCE_LOCAL">
		<class>entidades.Pessoa</class>
		<class>entidades.Automovel</class>
		<properties>
			<property name="javax.persistence.jdbc.url" value="jdbc:postgresql://localhost:5432/vendas" />
			<property name="javax.persistence.jdbc.user" value="postgres" />
			<property name="javax.persistence.jdbc.password" value="123" />
			<property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver" />
			<!-- modifica a estrutura do banco de dados conforme os beans configurados -->
			<!-- modifica a estrutura do banco de dados conforme os beans configurados -->

			<property name="hibernate.hbm2dll.auto" value="update" />

			<property name="hibernate.show_sql" value="true" />
			<property name="hibernate.format_sql" value="true" />
		</properties>
	</persistence-unit>
</persistence>

Tela de cadastro

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:p="http://primefaces.org/ui">
<h:head>
	<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
	<title>Cadastro Pessoa</title>
</h:head>
<h:body>
	<h:form id="cadastro">
		<h:panelGrid columns="2">
		
			Codigo:
			<h:inputText value="#{pessoaBean.pessoa.idPessoa}" disabled="true"/>	
						
			Nome Fantasia:
			<h:inputText value="#{pessoaBean.pessoa.nomeFantasia}"  />
				
			Razao Social:
			<h:inputText value="#{pessoaBean.pessoa.razaoSocial}"  />

		</h:panelGrid>
		<h:commandButton action="#{pessoaBean.gravar(pessoaBean.pessoa)}" value="Salvar" />
	</h:form>
</h:body>
</html>

O comando update dentro do persistence não deveria ja criar a tabela caso ela não exista? Igual ao comando create?

Olá Fabricio, no JSF não é necessário passar parâmetro para salvar,

action="#{pessoaBean.gravar(pessoaBean.pessoa)}"

A sua variável de instância pessoa já está populada.

Alterei para:

action="#{pessoaBean.gravar}" 

Continua com o problema.

Gere o banco através de suas classes, talvez seja problema nas tabelas.

mude seu sequenceGenerator para:

[code]@Entity
@SequenceGenerator(name=“table_id_seq”, sequenceName=“SEQ_TABLE”, allocationSize=1) // mude o sequenceName , veja se resolve
public class Pessoa implements Serializable{

/** 
 *  
 */  
private static final long serialVersionUID = 308431647573583250L;  
  
@Id  
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="table_id_seq")  
private Long idPessoa;

[/code]