hibernate.cfg.xml
ファイルにいくつかのプロパティを設定していても、Hibernateからコンソール出力を得ることができませんでした(デバッグに役立つ)。たとえば、行<property name="show_sql">true</property>
を追加しても、実際にはコンソールにSQL文が表示されませんでした。Hibernateからより多くのデバッグメッセージを取得するには?
また、log4j.properties
ファイルのコンテンツ(log4j.logger.org.hibernate=debug
)の内容を遊びませんでした。私は何が欠けていますか?
編集:休止状態-service.xmlファイルの内容は、私は、これは実際にかかわらず、任意の効果を持っている場合は100%わからない
<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>
です。そのXMLファイルは、私のデータベースを処理するEclipseプロジェクトにありますが、JBoss deployディレクトリにはありません。
編集2:これは間違いなくHARとして展開されます。つまり、私はかなり必要だと確信していますhibernate.cfg.xml
- マッピングファイルがそのファイルのエントリとして省略されたときに問題が発生したことを思い出します。私は休止状態-service.xmlをファイルに誤っ整形式XMLとAntビルドを行うときに、それを
<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.xml"/>
</metainf>
</jar>
</target>
しかし:それのためのターゲットは、build.xmlファイルにあります - 私はHARは、antを使用して生成されると思います失敗しません。 更新ファイルを完全に削除してもビルドが失敗することはありません。ここにどんなアイデア? エンド更新
出力SQL文にHibernateを得ることは(すべてが正しくセットアップされた場合)、完全にそれの世話をする必要があるように聞こえる - それはlog4j.propertiesの設定はここでの違いをすることはありませんことを意味するのでしょうか? - 実際にははになりますので、antを実行すると出力が変わります。
編集3:私のデータhar
と他の奇妙な問題に実行した後、私は完全にHARファイルを削除し、har
Antビルドターゲットを使用してそれを再構築します。突然すべてが動いている!彼のすばらしい有用性のためのチェスプレイに感謝します。私は最終的に何をしたのか正確に知っているとは言えませんが、私は自分の答えを書いて受け入れるよりも、彼の努力を認めています。あなたが「彼」でないなら、私の謝罪。
'hibernate.show_sql'(または、のJBoss MBean内の' ShowSqlEnabled')は、ロギング設定とは無関係です。有効にすると、SQLは常にコンソールに出力されます。適切なロガー設定で 'org.hibernate.SQL = DEBUG'を設定すると、ロガーのために設定された出力にも同じことが実行されます。どちらの方法も互いに独立しています(たとえば、両方とも設定するとsqlが2回印刷されます) – ChssPly76