Hibernate + JBoss

8 respostas
rodrigousp

Então, essa é uma continuação do tópico
http://www.guj.com.br/forum/viewtopic.php?t=6421

Para debuggar este problema eu gostaria de ver a saída sql do hibernate, ou ainda, quais comandos e parâmetros que o hibernate invoca do jdbc.
Fazendo isso, eu sou capaz de reproduzir os comandos do hibernate e constatar as inconsistências manualmente.

É possível fazer isso ???

8 Respostas

cv1

Use um “espiao” de JDBC, tipo o P6Spy:

http://www.p6spy.com/

urubatan

não resolve setar o parametro show_sql do hibernate para true??
assim ele imprime na tela todos os sqls gerados :slight_smile:

Paulo_Silveira

“urubatan”:
não resolve setar o parametro show_sql do hibernate para true??

deve bastar
soh que ele soh imprime os PreparedStatements

rodrigousp

Muito grato a todos. Realmente show_sql bastava.
Agora que eu descobri que sou uma anta (eu que uma string maior que a definição da tabela), gostaria de saber como validar um pojo baseado no atributos do mapping.xml do hibernate.

Mais uma vez obrigado,
A anta

Paulo_Silveira

rodrigo, quando voce faz o Configuration.addClass(Class) ele faz essa verificacao. da MappingException se a classe nao estiver de acordo com o hbm.xml. era isso?

rodrigousp

Não quero validar a classe. Quero validar o bean. Quero validar o objeto… os valores contidos nele.
Para isso eu vou utilizar o validator do common do jakarta, que foi a única solução que encontrei.

Então eu crie um xslt que transforma o mapping do hibernate, num validation.xml do validator.

<?xml version="1.0" encoding="UTF-8" ?>

<!--
    Document   : Mapping2Validator.xsl
    Created on : 29 de Outubro de 2003, 13:54
    Author     : Rodrigo di Lorenzo Lopes
    Description:
        Transforma o mapping do hibernate para validation.xml do jakarta commons.
-->

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" indent="yes" doctype-public="http://jakarta.apache.org/commons/dtds/validator_1_0.dtd"/>

      <xsl:template match="/">
        <form-validation>
        <xsl:apply-templates select="//class"/>
        </form-validation>
    </xsl:template>
    
    <xsl:template match="//class">
        <formset>
           <form>
           <xsl:attribute name="name">
            <xsl:value-of select="@name"/>
           </xsl:attribute>
            <xsl:apply-templates select="./composite-id"/>
            <xsl:apply-templates select="./id"/>
            <xsl:apply-templates select="./property"/>
            </form>
         </formset>
       </xsl:template>
       
       <xsl:template match="//id">
           <xsl:call-template name="field"/>
       </xsl:template>

              
       <xsl:template match="//composite-id">
           <xsl:call-template name="field"/>
       </xsl:template>
      
       <xsl:template match="//property">
           <xsl:call-template name="field"/>        
       </xsl:template>
       
       <xsl:template name="field">
           <field>
           <xsl:attribute name="property">
                <xsl:value-of select="@name"/>
            </xsl:attribute>
            
            <xsl:attribute name="depends">maxlength<xsl:if test="@type = 'java.sql.Date'">,isDate</xsl:if><xsl:if test="@type = 'int'">,isInt</xsl:if><xsl:if test="@name = 'email'">,isEmail</xsl:if></xsl:attribute>
            <var>
                <var-name>maxlength</var-name>
                <var-value>
                    <xsl:value-of select="@length"/>
                 </var-value>
             </var>
             </field>
        </xsl:template>
</xsl:stylesheet>

O que vocês acham ?

cv1

Eu nao uso o Validator da Jakarta - o XWork tem um validator proprio ja - mas a ideia de usar um XSLT foi duca! Vou tentar aproveitar ela aqui :smiley:

Paulo_Silveira

puts rodrigo! doidissimo!!!

Criado 28 de outubro de 2003
Ultima resposta 30 de out. de 2003
Respostas 8
Participantes 4