Pessoal, boa tarde.
Possuo a classe Pessoa em meu código e as subclasses Aluno e Instrutor.
Por algum motivo, o hibernate diz que nao encontra o Getter para a Classe Aluno.
Abaixo a classe e o mapemanento.
package br.com.academia.classes;
import java.util.Date;
public abstract class Pessoa {
private int id;
private String nome;
private String cpf;
private String rg;
private String telefone1;
private String telefone2;
private Bairro bairro;
private String endereco_rua;
private String endereco_numero_casa;
private Date data_nascimento;
private String sexo;
private String codigo_registro;
private String email;
private String login;
private String senha;
private String sn_estudante;
private String sn_ativo;
private InstituicaoEnsino instituicao_ensino;
private String tipo_pessoa;
public Bairro getBairro() {
return bairro;
}
public void setBairro(Bairro bairro) {
this.bairro = bairro;
}
public String getCodigo_registro() {
return codigo_registro;
}
public void setCodigo_registro(String codigo_registro) {
this.codigo_registro = codigo_registro;
}
public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
public Date getData_nascimento() {
return data_nascimento;
}
public void setData_nascimento(Date data_nascimento) {
this.data_nascimento = data_nascimento;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getEndereco_numero_casa() {
return endereco_numero_casa;
}
public void setEndereco_numero_casa(String endereco_numero_casa) {
this.endereco_numero_casa = endereco_numero_casa;
}
public String getEndereco_rua() {
return endereco_rua;
}
public void setEndereco_rua(String endereco_rua) {
this.endereco_rua = endereco_rua;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public InstituicaoEnsino getInstituicao_ensino() {
return instituicao_ensino;
}
public void setInstituicao_ensino(InstituicaoEnsino instituicao_ensino) {
this.instituicao_ensino = instituicao_ensino;
}
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getRg() {
return rg;
}
public void setRg(String rg) {
this.rg = rg;
}
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
public String getSexo() {
return sexo;
}
public void setSexo(String sexo) {
this.sexo = sexo;
}
public String getSn_ativo() {
return sn_ativo;
}
public void setSn_ativo(String sn_ativo) {
this.sn_ativo = sn_ativo;
}
public String getSn_estudante() {
return sn_estudante;
}
public void setSn_estudante(String sn_estudante) {
this.sn_estudante = sn_estudante;
}
public String getTelefone1() {
return telefone1;
}
public void setTelefone1(String telefone1) {
this.telefone1 = telefone1;
}
public String getTelefone2() {
return telefone2;
}
public void setTelefone2(String telefone2) {
this.telefone2 = telefone2;
}
public String getTipo_pessoa() {
return tipo_pessoa;
}
public void setTipo_pessoa(String tipo_pessoa) {
this.tipo_pessoa = tipo_pessoa;
}
}
package br.com.academia.classes;
import java.util.Date;
public class Aluno extends Pessoa{
private Date data_matricula;
public Date getData_matricula() {
return data_matricula;
}
public void setData_matricula(Date data_matricula) {
this.data_matricula = data_matricula;
}
}
----------------------XML------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="br.com.academia.classes">
<class name="Pessoa" table="PESSOA">
<id column="ID" name="id" type="int">
<generator class="native"/>
</id>
<discriminator column="TIPO_PESSOA" type="string" />
<property column="NOME" length="150" name="nome" type="java.lang.String" not-null="true"/>
<property column="CPF" length="11" name="cpf" type="java.lang.String" not-null="true" unique="true"/>
<property column="RG" length="10" name="rg" type="java.lang.String" not-null="true" unique="true"/>
<property column="TELEFONE1" length="10" name="telefon1" type="java.lang.String" not-null="false"/>
<property column="TELEFONE2" length="10" name="telefon2" type="java.lang.String" not-null="false"/>
<many-to-one class="Bairro" column="BAIRRO" name="bairro" not-null="true"/>
<property column="ENDERECO_RUA" length="150" name="endereco_rua" type="java.lang.String" not-null="true"/>
<property column="ENDERECO_NUMERO_CASA" length="7" name="endereco_numero_casa" type="java.lang.String" not-null="true"/>
<property column="DATA_NASCIMENTO" length="150" name="data_nascimento" type="java.lang.String" not-null="true"/>
<property column="SEXO" length="1" name="sexo" type="java.lang.String" not-null="true"/>
<property column="CODIGO_REGISTRO" length="150" name="codigo_registro" type="java.lang.String" not-null="true"/>
<property column="EMAIL" length="150" name="email" type="java.lang.String" not-null="true"/>
<property column="LOGIN" length="150" name="login" type="java.lang.String" not-null="true"/>
<property column="SENHA" length="150" name="senha" type="java.lang.String" not-null="true"/>
<property column="SN_ESTUDANTE" length="1" name="sn_estudante" type="java.lang.String" not-null="true"/>
<property column="SN_ATIVO" length="1" name="sn_ativo" type="java.lang.String" not-null="true"/>
<many-to-one class="InstituicaoEnsino" column="INSTITUICAO_ENSINO" name="instituicao_ensino" not-null="false"/>
<subclass name="Aluno" extends="Pessoa" discriminator-value="ALUNO">
<property column="DATA_MATRICULA" length="150" name="data_matricula" type="java.lang.String" not-null="true" />
</subclass>
<subclass name="Instrutor" extends="Pessoa" discriminator-value="INSTRUTOR">
<property column="SALARIO" length="150" name="salario" type="java.lang.Double" not-null="true"/>
<property column="DATA_CONTRATACAO" length="150" name="data_contratacao" type="java.util.Date" not-null="true"/>
<property column="FORMACAO" length="150" name="formacao" type="java.lang.String" not-null="true"/>
</subclass>
</class>
</hibernate-mapping>
Abaixo o erro.
run:
14:43:20,272 INFO Environment:514 - Hibernate 3.2.6
14:43:20,279 INFO Environment:532 - loaded properties from resource hibernate.properties: {hibernate.connection.driver_class=com.mysql.jdbc.Driver, hibernate.cache.provider_class=org.hibernate.cache.HashtableCacheProvider, hibernate.max_fetch_depth=1, hibernate.dialect=org.hibernate.dialect.MySQLDialect, hibernate.jdbc.use_streams_for_binary=true, hibernate.format_sql=true, hibernate.query.substitutions=yes ‘Y’, no ‘N’, hibernate.proxool.pool_alias=pool1, hibernate.connection.username=root, hibernate.cache.region_prefix=hibernate.test, hibernate.connection.url=jdbc:mysql://localhost/academia, hibernate.bytecode.use_reflection_optimizer=false, hibernate.connection.password=, hibernate.jdbc.batch_versioned_data=true, hibernate.connection.pool_size=1}
14:43:20,282 INFO Environment:563 - using java.io streams to persist binary types
14:43:20,282 INFO Environment:681 - Bytecode provider name : cglib
14:43:20,286 INFO Environment:598 - using JDK 1.4 java.sql.Timestamp handling
14:43:20,329 INFO Configuration:1432 - configuring from resource: /hibernate.cfg.xml
14:43:20,329 INFO Configuration:1409 - Configuration resource: /hibernate.cfg.xml
14:43:20,509 INFO Configuration:559 - Reading mappings from resource : br/com/academia/mapeamentos/Pais.hbm.xml
14:43:20,577 INFO HbmBinder:300 - Mapping class: br.com.academia.classes.Pais -> PAIS
14:43:20,589 INFO Configuration:559 - Reading mappings from resource : br/com/academia/mapeamentos/Estado.hbm.xml
14:43:20,605 INFO HbmBinder:300 - Mapping class: br.com.academia.classes.Estado -> ESTADO
14:43:20,652 INFO Configuration:559 - Reading mappings from resource : br/com/academia/mapeamentos/Cidade.hbm.xml
14:43:20,666 INFO HbmBinder:300 - Mapping class: br.com.academia.classes.Cidade -> CIDADE
14:43:20,667 INFO Configuration:559 - Reading mappings from resource : br/com/academia/mapeamentos/Bairro.hbm.xml
14:43:20,680 INFO HbmBinder:300 - Mapping class: br.com.academia.classes.Bairro -> BAIRRO
14:43:20,681 INFO Configuration:559 - Reading mappings from resource : br/com/academia/mapeamentos/InstituicaoEnsino.hbm.xml
14:43:20,688 INFO HbmBinder:300 - Mapping class: br.com.academia.classes.InstituicaoEnsino -> INSTITUICAOENSINO
14:43:20,689 INFO Configuration:559 - Reading mappings from resource : br/com/academia/mapeamentos/Pessoa.hbm.xml
14:43:20,699 INFO HbmBinder:300 - Mapping class: br.com.academia.classes.Pessoa -> PESSOA
14:43:20,731 INFO HbmBinder:814 - Mapping subclass: br.com.academia.classes.Aluno -> PESSOA
14:43:20,731 INFO HbmBinder:814 - Mapping subclass: br.com.academia.classes.Instrutor -> PESSOA
14:43:20,732 INFO Configuration:559 - Reading mappings from resource : br/com/academia/mapeamentos/Exercicio.hbm.xml
14:43:20,744 INFO HbmBinder:300 - Mapping class: br.com.academia.classes.Exercicio -> EXERCICIO
14:43:20,745 INFO Configuration:559 - Reading mappings from resource : br/com/academia/mapeamentos/FichaDeTreino.hbm.xml
14:43:20,752 INFO HbmBinder:300 - Mapping class: br.com.academia.classes.FichaDeTreino -> FICHADETREINO
14:43:20,753 INFO Configuration:559 - Reading mappings from resource : br/com/academia/mapeamentos/Plano.hbm.xml
14:43:20,761 INFO HbmBinder:300 - Mapping class: br.com.academia.classes.Plano -> PLANO
14:43:20,761 INFO Configuration:559 - Reading mappings from resource : br/com/academia/mapeamentos/AlunoPlano.hbm.xml
14:43:20,769 INFO HbmBinder:300 - Mapping class: br.com.academia.classes.AlunoPlano -> ALUNOPLANO
14:43:20,770 INFO Configuration:559 - Reading mappings from resource : br/com/academia/mapeamentos/AvaliacaoFisica.hbm.xml
14:43:20,782 INFO HbmBinder:300 - Mapping class: br.com.academia.classes.AvaliacaoFisica -> AVALIACAOFISICA
14:43:20,783 INFO HbmBinder:814 - Mapping subclass: br.com.academia.classes.Anamnese -> AVALIACAOFISICA
14:43:20,784 INFO HbmBinder:814 - Mapping subclass: br.com.academia.classes.Perimetria -> AVALIACAOFISICA
14:43:20,786 INFO HbmBinder:814 - Mapping subclass: br.com.academia.classes.Postura -> AVALIACAOFISICA
14:43:20,787 INFO HbmBinder:814 - Mapping subclass: br.com.academia.classes.DobrasCultaneas -> AVALIACAOFISICA
14:43:20,788 INFO Configuration:1547 - Configured SessionFactory: null
14:43:20,794 INFO DriverManagerConnectionProvider:41 - Using Hibernate built-in connection pool (not for production use!)
14:43:20,794 INFO DriverManagerConnectionProvider:42 - Hibernate connection pool size: 1
14:43:20,795 INFO DriverManagerConnectionProvider:45 - autocommit mode: false
14:43:20,888 INFO DriverManagerConnectionProvider:80 - using driver: com.mysql.jdbc.Driver at URL: jdbc:mysql://localhost/academia
14:43:20,889 INFO DriverManagerConnectionProvider:86 - connection properties: {user=root, password=}
14:43:21,055 INFO SettingsFactory:89 - RDBMS: MySQL, version: 5.5.27
14:43:21,055 INFO SettingsFactory:90 - JDBC driver: MySQL-AB JDBC Driver, version: mysql-connector-java-5.0.8 ( Revision: ${svn.Revision} )
14:43:21,068 INFO Dialect:152 - Using dialect: org.hibernate.dialect.MySQLDialect
14:43:21,071 INFO TransactionFactoryFactory:31 - Using default transaction strategy (direct JDBC transactions)
14:43:21,072 INFO TransactionManagerLookupFactory:33 - No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)
14:43:21,072 INFO SettingsFactory:143 - Automatic flush during beforeCompletion(): disabled
14:43:21,073 INFO SettingsFactory:147 - Automatic session close at end of transaction: disabled
14:43:21,073 INFO SettingsFactory:154 - JDBC batch size: 15
14:43:21,073 INFO SettingsFactory:157 - JDBC batch updates for versioned data: enabled
14:43:21,074 INFO SettingsFactory:162 - Scrollable result sets: enabled
14:43:21,074 INFO SettingsFactory:170 - JDBC3 getGeneratedKeys(): enabled
14:43:21,074 INFO SettingsFactory:178 - Connection release mode: auto
14:43:21,075 INFO SettingsFactory:202 - Maximum outer join fetch depth: 1
14:43:21,075 INFO SettingsFactory:205 - Default batch fetch size: 1
14:43:21,075 INFO SettingsFactory:209 - Generate SQL with comments: disabled
14:43:21,075 INFO SettingsFactory:213 - Order SQL updates by primary key: disabled
14:43:21,075 INFO SettingsFactory:217 - Order SQL inserts for batching: disabled
14:43:21,075 INFO SettingsFactory:386 - Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
14:43:21,077 INFO ASTQueryTranslatorFactory:24 - Using ASTQueryTranslatorFactory
14:43:21,077 INFO SettingsFactory:225 - Query language substitutions: {yes=‘Y’, no=‘N’}
14:43:21,077 INFO SettingsFactory:230 - JPA-QL strict compliance: disabled
14:43:21,078 INFO SettingsFactory:235 - Second-level cache: enabled
14:43:21,078 INFO SettingsFactory:239 - Query cache: disabled
14:43:21,078 INFO SettingsFactory:373 - Cache provider: org.hibernate.cache.HashtableCacheProvider
14:43:21,079 INFO SettingsFactory:254 - Optimize cache for minimal puts: disabled
14:43:21,079 INFO SettingsFactory:259 - Cache region prefix: hibernate.test
14:43:21,079 INFO SettingsFactory:263 - Structured second-level cache entries: disabled
14:43:21,083 INFO SettingsFactory:283 - Echoing all SQL to stdout
14:43:21,083 INFO SettingsFactory:290 - Statistics: disabled
14:43:21,083 INFO SettingsFactory:294 - Deleted entity synthetic identifier rollback: disabled
14:43:21,083 INFO SettingsFactory:309 - Default entity-mode: pojo
14:43:21,083 INFO SettingsFactory:313 - Named query checking : enabled
14:43:21,114 INFO SessionFactoryImpl:161 - building session factory
Exception in thread “AWT-EventQueue-0” java.lang.ExceptionInInitializerError
at br.com.academia.forms.frm_CadastroAluno.<init>(frm_CadastroAluno.java:22)
at br.com.academia.forms.frm_CadastroAluno$2.run(frm_CadastroAluno.java:389)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:705)
at java.awt.EventQueue.access$000(EventQueue.java:101)
at java.awt.EventQueue$3.run(EventQueue.java:666)
at java.awt.EventQueue$3.run(EventQueue.java:664)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:675)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: org.hibernate.PropertyNotFoundException: Could not find a getter for telefon1 in class br.com.academia.classes.Aluno
at org.hibernate.property.BasicPropertyAccessor.createGetter(BasicPropertyAccessor.java:282)
at org.hibernate.property.BasicPropertyAccessor.getGetter(BasicPropertyAccessor.java:275)
at org.hibernate.mapping.Property.getGetter(Property.java:272)
at org.hibernate.tuple.entity.PojoEntityTuplizer.buildPropertyGetter(PojoEntityTuplizer.java:247)
at org.hibernate.tuple.entity.AbstractEntityTuplizer.<init>(AbstractEntityTuplizer.java:125)
at org.hibernate.tuple.entity.PojoEntityTuplizer.<init>(PojoEntityTuplizer.java:55)
at org.hibernate.tuple.entity.EntityEntityModeToTuplizerMapping.<init>(EntityEntityModeToTuplizerMapping.java:56)
at org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:302)
at org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:434)
at org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:109)
at org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:55)
at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:226)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1300)
at br.com.academia.classes.Persistencia.<clinit>(Persistencia.java:20)
… 16 more