olá,
tenho o seguinte modelo: cliente herda de entidade. cliente possui atributo conjuge, q é uma pessoa. pessoa herda de entidade.
qdo vou pesquisar, dá o seguinte erro: java.sql.SQLException: ERROR: column this_.id does not exist. Este erro começou qdo inseri o atributo conjuge na classe cliente...
Gostaria q vcs dessem uma olhada na anotação do conjuge (acho q meu erro está aqui)... tb penso na possibilidade do hibernate não suportar tal modelagem... como não sou experiente no assunto, preciso muito da ajuda de vcs.
Abaixo, estão as classes.
Desde já agradeço.
@Inheritance (strategy = InheritanceType.TABLE_PER_CLASS)
@Entity
@Table(name="tb_cliente")
@AttributeOverrides({@AttributeOverride(name="id", column=@Column(name="id_cliente")),
@AttributeOverride(name="nome", column=@Column(name="nome_cliente"))})
public class ClienteEntity extends EntidadeEntity implements Serializable {
@Embedded
@AttributeOverrides({ @AttributeOverride(name="orgaoExpedidor", column=@Column(name="orgao_expedidor")),
@AttributeOverride(name="numero", column=@Column(name="rg"))})
private RGEntity rg;
private Long cpf;
private Long cnpj;
@ManyToOne
@JoinColumn(name="id_tipo_cliente")
private TipoClienteEntity tipoCliente;
@Column(name="inscricao_estadual")
private String inscricaoEstadual;
@Column(name="nome_fantasia")
private String nomeFantasia;
private String referencia;
@Embedded
@AttributeOverrides({@AttributeOverride(name="nomePai", column=@Column(name="nome_pai")),
@AttributeOverride(name="nomeMae", column=@Column(name="nome_mae"))})
private FiliacaoEntity filiacao;
@Temporal(javax.persistence.TemporalType.DATE)
@Column(name="data_nascimento")
private Date dataNascimento;
@Embedded
@AttributeOverride(name="nome", column=@Column(name="naturalidade"))
private CidadeEntity naturalidade;
@Embedded
@AttributeOverrides({@AttributeOverride(name="serie", column=@Column(name="serie_carteira_trabalho")),
@AttributeOverride(name="numero", column=@Column(name="numero_carteira_trabalho"))})
private CarteiraTrabalhoEntity carteiraTrabalho;
@Embedded
@AttributeOverride(name="rendaTotalMensal", column=@Column(name="renda_mensal"))
private RendaEntity renda;
@Column(name="registro_scpc")
private Boolean registroSCPC;
@Embedded
@AttributeOverride(name="limiteCredito", column=@Column(name="limite_credito"))
private CreditoEntity credito;
@ManyToOne
@JoinColumn(name="id_sexo")
private SexoEntity sexo;
@ManyToOne
@JoinColumn(name="id_estado_civil")
private EstadoCivilEntity estadoCivil;
@Embedded
@AttributeOverrides({@AttributeOverride(name="nome", column=@Column(name="conjuge_nome")),
@AttributeOverride(name="id", column=@Column(insertable=false, updatable=false)),
@AttributeOverride(name="celular.ddd", column=@Column(insertable=false, updatable=false)),
@AttributeOverride(name="celular.numero", column=@Column(insertable=false, updatable=false)),
@AttributeOverride(name="email", column=@Column(insertable=false, updatable=false)),
@AttributeOverride(name="telefone.ddd", column=@Column(insertable=false, updatable=false)),
@AttributeOverride(name="telefone.numero", column=@Column(insertable=false, updatable=false)),
@AttributeOverride(name="fax.ddd", column=@Column(insertable=false, updatable=false)),
@AttributeOverride(name="fax.numero", column=@Column(insertable=false, updatable=false)),
@AttributeOverride(name="endereco.logradouro.nome", column=@Column(insertable=false, updatable=false)),
@AttributeOverride(name="endereco.nroPredial", column=@Column(insertable=false, updatable=false)),
@AttributeOverride(name="endereco.bairro.nome", column=@Column(insertable=false, updatable=false)),
@AttributeOverride(name="endereco.cidade.nome", column=@Column(insertable=false, updatable=false)),
@AttributeOverride(name="endereco.estado.id_estado", column=@Column(insertable=false, updatable=false)),
@AttributeOverride(name="endereco.estado.nome", column=@Column(insertable=false, updatable=false)),
@AttributeOverride(name="endereco.estado.sigla", column=@Column(insertable=false, updatable=false)),
//@AttributeOverride(name="endereco.estado.estados", column=@Column(insertable=false, updatable=false)),
@AttributeOverride(name="endereco.cep.numero", column=@Column(insertable=false, updatable=false)),
@AttributeOverride(name="endereco.complemento", column=@Column(insertable=false, updatable=false)),
@AttributeOverride(name="sexo.descricao", column=@Column(insertable=false, updatable=false)),
@AttributeOverride(name="sexo.id_sexo", column=@Column(insertable=false, updatable=false)),
@AttributeOverride(name="renda.rendaTotalMensal", column=@Column(insertable=false, updatable=false)),
@AttributeOverride(name="localTrabalho", column=@Column(name="conjuge_local_trabalho")),
@AttributeOverride(name="renda.salario", column=@Column(name="conjuge_salario")),
@AttributeOverride(name="dataNascimento", column=@Column(name="conjuge_dt_nascimento")),
@AttributeOverride(name="profissao.descricao", column=@Column(name="conjuge_profissao")),
@AttributeOverride(name="rg.numero", column=@Column(name="conjuge_rg")),
@AttributeOverride(name="rg.orgaoExpedidor", column=@Column(name="conjuge_orgao_expedidor")),
@AttributeOverride(name="filiacao.nomePai", column=@Column(name="conjuge_pai")),
@AttributeOverride(name="filiacao.nomeMae", column=@Column(name="conjuge_mae")),
@AttributeOverride(name="cpf", column=@Column(name="conjuge_cpf"))
})
private PessoaEntity conjuge;
@Column(name="local_trabalho")
private String localTrabalho;
@Embedded
@AttributeOverride(name="descricao", column=@Column(name="profissao"))
private ProfissaoEntity profissao;
private String contato;
@Embeddable
public class PessoaEntity extends EntidadeEntity implements Serializable {
private Long cpf;
private RGEntity rg;
private CidadeEntity naturalidade;
@Temporal(javax.persistence.TemporalType.DATE)
private Date dataNascimento;
private FiliacaoEntity filiacao;
private ProfissaoEntity profissao;
private RendaEntity renda;
@MappedSuperclass
public abstract class EntidadeEntity implements Serializable {
//private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String nome;
@Embedded
@AttributeOverrides({@AttributeOverride(name="ddd", column=@Column(name="ddd_telefone")),
@AttributeOverride(name="numero", column=@Column(name="telefone"))})
private TelefoneEntity telefone;
@Embedded
@AttributeOverrides({@AttributeOverride(name="ddd", column=@Column(name="ddd_fax")),
@AttributeOverride(name="numero", column=@Column(name="fax"))})
private TelefoneEntity fax;
@Embedded
@AttributeOverrides({@AttributeOverride(name="ddd", column=@Column(name="ddd_celular")),
@AttributeOverride(name="numero", column=@Column(name="celular"))})
private TelefoneEntity celular;
@Embedded
@AttributeOverride(name="nroPredial", column=@Column(name="numero_predial"))
private EnderecoEntity endereco;
@Email
private String email;