[resolvido] hibernate nao encontra getter

6 respostas
S

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=<strong><strong>, hibernate.jdbc.batch_versioned_data=true, hibernate.connection.pool_size=1}

14:43:20,282  INFO Environment:563 - using <a href="http://java.io">java.io</a> 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=</strong></strong>}

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

6 Respostas

Rodrigo_Sasaki

Como diria o drsmachado:
“Cadê as tags code, champs?”

R

Colocao erro e codigo da sua classe aluno.
OBS: Utilize CamelCase para fazer nomenclatura de variaveis, que é o padrão adotado na hora de se definir classes e variaveis em java.

S

Tags inseridas. Desculpe.

R
<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"/>

Coloca igual como esta na sua classe Pessoa

telefone1
telefone2

ao inves de telefon1 …

S

rof20004.

Perfeito, era isso mesmo. o cabeça de bagre aqui não tinha reparado que faltou uma letra.

Obrigado pela ajuda.

R

[RESOLVIDO] la em riba…

Criado 1 de abril de 2013
Ultima resposta 1 de abr. de 2013
Respostas 6
Participantes 4