当前位置: 首页 > 面试题库 >

如何从Hibernate获取更多调试消息?

邴宏大
2023-03-14
问题内容

尽管在hibernate.cfg.xml文件中设置了一些属性,我仍无法从Hibernate获得任何更多控制台输出(以帮助调试)。例如,添加该行<property name="show_sql">true</property>实际上并没有在控制台中显示SQL语句。

我也尝试过log4j.properties文件的内容-如设置log4j.logger.org.hibernate=debug-没有运气。我想念什么?

编辑: hibernate-service.xml文件的内容是

<server> 
    <mbean code="org.jboss.hibernate.jmx.Hibernate" 
       name="jboss.har:service=Hibernate_SMS"> 
        <attribute name="DatasourceName">java:/SMS_DS</attribute> 
        <attribute name="Dialect">org.hibernate.dialect.HSQLDialect</attribute> 
        <attribute name="SessionFactoryName">java:/hibernate/SessionFactory</attribute> 
        <attribute name="CacheProviderClass">org.hibernate.cache.HashtableCacheProvider</attribute>
        <attribute name="ShowSqlEnabled">true</attribute>
    </mbean> 
</server>

不过,我不确定100%是否真的有效。该XML文件位于处理我的数据库内容的Eclipse项目中,但似乎不在JBoss deploy目录中。

编辑2:
绝对可以将其部署为HAR。就是说,我非常确定我需要hibernate.cfg.xml-我记得在映射文件被省略为该文件中的条目时遇到问题。我认为HAR是使用ant生成的-
build.xml文件中有一个目标:

<target name="har" depends="prepare" description="Builds the Hibernate HAR file">
    <mkdir dir="${class.root}" />
    <mkdir dir="${distribution.dir}" />

    <jar destfile="${distribution.dir}/${har.name}">                    
        <!-- include the hbm.xml files  -->
        <fileset dir="${class.root}">
            <include name="**/*.hbm.xml"/>
            <include name="com/[redacted]/sms/data/dto/*.class"/>
            <include name="com/[redacted]/sms/data/dto/base/*.class"/>
        </fileset>

        <!-- include jboss-service.xml -->
        <metainf dir="${hibernate.dir}">
            <include name="hibernate-service.html" target="_blank">xml"/>
        </metainf>
    </jar>
</target>

但是,当我使用hibernate-service.xml文件中格式错误的xml进行蚂蚁构建时,它不会失败。 更新
即使完全删除文件也不会导致构建失败。这里有什么想法吗? 结束更新

听起来像让Hibernate输出SQL语句应该(如果一切都正确设置)完全处理它-
这是否意味着log4j.properties中的设置在这里不会有所不同?-因为这实际上在运行ant时确实 更改输出。

编辑3:
在遇到其他奇怪的数据问题后,我har完全删除了har文件,并使用harant构建目标对其进行了重建。突然一切正常!感谢国际象棋对他的帮助。不能说我确切地知道最后做了什么,但是我宁愿承认他的努力,也不愿写出并接受我自己的答案。如果您不是“他”,我深表歉意。


问题答案:

正确的属性名称是hibernate.show_sql,它肯定可以工作。

确保您hibernate.cfg.xml是正确的人,并且它会被拾取;您的log4j.properties文件也是如此。我知道这些建议似乎很愚蠢,但它们占“缺少日志记录输出”问题的98%。

更新 :我将更新答案,而不是继续添加评论。您确实需要确保您hibernate- service.xml被JBoss接过。检查的简单方法是向其添加语法错误(例如,在某些元素上省略右花括号),并查看JBoss在重新启动过程中是否爆炸:-)应该将其打包har并部署为构建过程的一部分,因此如果您意识到JBoss
没有
捡起它,而是您可以去寻找的地方。我会摆脱冲突的设置hibernate.cfg.xml(例如,您指定为mbean属性的所有内容都不应复制到中hibernate.cfg.xml)。为此,您甚至需要hibernate.cfg.xml吗?如果部署为HAR,则应自动扫描/提取您的映射。



 类似资料:
  • 我重用了一个snipe命令代码来执行这个fetch命令,但这并不是我的问题。 我正试图从一个频道获取一条消息,并将其发布到指定的频道中,例如:在X中抓取消息,并将其发布到Y中。如果这有意义,那么到目前为止,我所拥有的只有: 非常感谢您的帮助! ps:到现在为止,它从它运行的命令的通道中获取消息。如果我在X通道中发送了一条消息,并在X通道中运行该命令,它将在X通道中获取消息。我的目标是尝试从一个频道

  • 问题内容: 我正在尝试在非Spring代码中获取Spring定义的Hibernate Configuration和SessionFactory对象。以下是我的applicationContext.xml文件中的定义: 码: 如果现在调用getBean(“ sessionFactory”),我将返回一个$ Proxy0对象,该对象似乎是Hibernate SessionFactory对象的代理。但这

  • 问题内容: 如果我的查询包含一个类,例如: 然后我迭代它,那里是一个类的对象。 那么如何从包含多个类的查询中获取结果呢?例如: 问题答案: for (Object[] result : query.list()) { User user = (User) result[0]; Group group = (Group) result[1]; }

  • 我试图在Java卡上列出小程序/包。我使用以下APDU命令获取列表: 该命令返回状态字,因此我为字节发送一个GET-RESPONSE命令: 这将为我提供数据字节和状态字(“更多可用数据”)。接下来我应该发送什么来接收状态字指示的进一步数据? APDU跟踪:

  • 我的用例是,从生产者端,它将一行数据(大约100字节)作为一条消息发布到kafka topic,从消费者端,我希望一次消费5条消息,并将其提供给我的消费者逻辑。 我做了一个简单的例子,它总是得到一个消息并打印在控制台上。请建议我任何需要的配置更改,以实现这一点。 请在下面找到源代码。 使用以下命令启动生产者 /kafka生产者性能测试——num记录500——主题测试——吞吐量10——有效负载文件测

  • 问题内容: 如果我的查询包含一个类,例如: 然后我迭代它,那里是一个类的对象。 那么如何从包含多个类的查询中获取结果呢?例如: 问题答案: