Eu implementei minha classe conforme artigo do site http://www.hibernate.org/312.html e me deparei com o um erro, e não consegui entender o motivo.
- No mapeamento da classe Pessoa, eu utilizo um atributo que é tipo Enum “com.cbi.bdi.model.common.enumhibernate.HibernateSituacao”, e funciona beleza.
<hibernate-mapping package="com.boavontade.bdi.model.common">
<class name="Pessoa" abstract="true" table="pessoa">
<id name="id" access="field" type="integer" unsaved-value="null" column="id">
<generator class="native">
<param name="sequence">sq_pessoa_id</param>
</generator>
</id>
<discriminator column="tipo_pessoa" type="string" not-null="true" length="1"/>
<version name="versao" column="versao"/>
<property name="nome" type="string" column="nome" length="50"/>
<property name="situacao" type="com.cbi.bdi.model.common.enumhibernate.HibernateSituacao" column="situacao"/>
<property name="email" type="string" column="email" length="50"/>
<property name="site" type="string" column="site" length="50"/>
<property name="pseudonimo" type="string" column="pseudonimo" length="50"/>
<property name="pronuncia" type="string" column="pronuncia" length="30"/>
</class>
<subclass name="PessoaFisica" extends="com.cbi.bdi.model.common.Pessoa" discriminator-value="F">
<property name="sexo" type="serializable" column="sexo"/>
<property name="estadoCivil" type="com.cbi.bdi.model.common.enumhibernate.HibernateEstadoCivil" column="estado_civil"/>
<property name="dataNascimento" type="date" column="data_nascimento"/>
<property name="dataExpedicaoRg" type="date" column="data_expedicao_rg"/>
<property name="estadoRg" type="integer" column="estado_rg"/>
<property name="dataFalecimento" type="date" column="data_falecimento"/>
<property name="grauEscolaridade" type="serializable" column="grau_escolaridade"/>
<property name="rg" type="string" column="rg" length="11"/>
<property name="cpf" type="string" column="cpf" length="11"/>
<property name="tituloEleitor" type="string" column="titulo_eleitor" length="12"/>
<property name="reservistaMilitar" type="string" column="reservista_militar" length="15"/>
<property name="serieCtps" type="string" column="serie_ctps" length="5"/>
<property name="numeroCtps" type="string" column="numero_ctps" length="7"/>
</subclass>
</hibernate-mapping>
public enum Situacao {
ATIVO,
INATIVO
};
public class HibernateSituacao extends IntEnumUserType<Situacao> {
public HibernateSituacao(){
super(Situacao.class, Situacao.values());
}
}
mas, na sub-classe PessoaFisica, se eu colocar em qualquer atributo o Tipo Enumerado “com.cbi.bdi.model.common.enumhibernate.HibernateEstadoCivil” a minha aplicação não carrega. Como por exemplo:
public enum EstadoCivil{
CASADO,
DIVORCIADO,
SOLTEIRO,
VIUVO
};
public class HibernateEstadoCivil extends IntEnumUserType<EstadoCivil> {
protected HibernateEstadoCivil() {
super(EstadoCivil.class, EstadoCivil.values());
}
}
dá o seguinte erro ao carregar a aplicação:
10/11/2006 10:10:29 org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Arquivos de programas\Java\jdk1.5.0_06\bin;.;C:\WINDOWS\system32;C:\WINDOWS;C:\Arquivos de programas\Borland\Delphi7\Bin;C:\Arquivos de programas\Borland\Delphi7\Projects\Bpl;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Arquivos de programas\Apache\apache-ant-1.6.5\bin;C:\Arquivos de programas\Java\jdk1.5.0_06\bin
10/11/2006 10:10:29 org.apache.coyote.http11.Http11BaseProtocol init
INFO: Initializing Coyote HTTP/1.1 on http-8080
10/11/2006 10:10:29 org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 2047 ms
10/11/2006 10:10:29 org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
10/11/2006 10:10:29 org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/5.5.17
10/11/2006 10:10:29 org.apache.catalina.core.StandardHost start
INFO: XML validation disabled
log4j:WARN No appenders could be found for logger (org.apache.catalina.startup.TldConfig).
log4j:WARN Please initialize the log4j system properly.
10/11/2006 10:10:38 org.apache.catalina.core.StandardContext start
SEVERE: Error listenerStart
10/11/2006 10:10:38 org.apache.catalina.core.StandardContext start
SEVERE: Context [/bdi] startup failed due to previous errors10/11/2006 10:10:40 org.apache.coyote.http11.Http11BaseProtocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
10/11/2006 10:10:40 org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
10/11/2006 10:10:40 org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/47 config=null
10/11/2006 10:10:40 org.apache.catalina.storeconfig.StoreLoader load
INFO: Find registry server-registry.xml at classpath resource
10/11/2006 10:10:40 org.apache.catalina.startup.Catalina start
INFO: Server startup in 11484 ms
Se eu tirar do atributo o tipo HibernateEstadoCivil e colocar como Integer funciona beleza.
Por favor alguém poderia me ajudar?
OBS: Utilizo Spring + JSF + Hibernate.
Obrigado.
Jukinha :?: