JPA e herança no Postgresql

Antecipadamente, agradeço a quem puder ajudar.

O problema que estou enfrentando é o seguinte: estou desenvolvendo um sistema utilizando o Postgresql e o Hibernate/JPA para persistir os objetos.

O Postgresql tem uma forma de fazer herança diretamente na criação das tabelas. Tomando como exemplo a criação de uma tabela mãe “TBPessoa” e uma tabela filha “TBPessoaFisica”, o código ficaria da seguinte forma:

CREATE TABLE public.“TBPessoa”(
id integer NOT NULL,
nome character varying(100),
CONSTRAINT pk_tbpessoa PRIMARY KEY (id)
);

CREATE TABLE public.“TBPessoaFisica”(
cpf character varying(14) NOT NULL,
) INHERITS(public.“TBPessoa”);

Como podem ver, logo após a definição da tabela “TBPessoaFisica” temos o o termo que informa que a mesma herda os atributos da tabela “TBPessoa” e isso é tudo que o Postgresql necessita.

Contudo, utilizando o JPA para fazer a herança, o que mais se aproxima do modelo descrito acima é a forma “JOINED” de herança. Mas esse tipo de herança do JPA, cria as tabelas com uma diferença, como visto no código abaixo:

CREATE TABLE public.TBPessoa(
id integer NOT NULL,
nome character varying(100),
CONSTRAINT pk_tbpessoa PRIMARY KEY (id)
);

CREATE TABLE public.“TBPessoaFisica”(
cpf character varying(14) NOT NULL,
id integer NOT NULL,
CONSTRAINT pk_tbpessoafisica PRIMARY KEY (id)
);
ALTER TABLE public.TBPessoaFisica ADD CONSTRAINT fk_tbpessoafisica FOREIGN KEY (id)
REFERENCES public.TBPessoa (id) MATCH SIMPLE
ON DELETE NO ACTION ON UPDATE NO ACTION;

Como podemos perceber, em vez de utilizar a cláusula de herança, própria do Postgresql, o JPA cria uma chave estrangeira para a tabela “TBPessoa” dentro da tabela “TBPessoaFisica”.

Bom, depois de toda essa explicação, o que eu gostaria de saber é se existe uma maneira de manter a forma de herança criada pelo Postgresql utilizando o JPA.

Meu fraco conhecimento de JPA e minha intuição indica que ele nunca vai te gerar o script no formato que você quer, pois essa heranç de tabelas é uma extensão do Postgresql apenas.
(Esse post do SO parece confirmar isso: http://stackoverflow.com/questions/11841811/postgresql-inheritance-with-jpa-hibernate)

Não sei se vale a pena usar essa feature do Postgresql (se conseguir facilitar sua vida com ela) ou seria melhor usar o mecanismo de herança do próprio JPA (com seus 3 modelos de fazer isso).

Um comentário sobre o domínio, é que geralmente acho uma péssima idéia essa herança de Pessoa Física/Jurídica para Pessoa, mas com certeza você conhece seu domínio melhor que eu.