JBOSS SQL日志记录

时间:2015-12-29 19:36:04

标签: java sql hibernate logging jboss

使用JBOSS

我希望看到日志中执行的查询 - 我需要在纯SQL中查看它(如果可能的话)。 例如,我有一个带有命名查询的DO类

@NamedQuery(name="MyElementDO.findByAllStuff",
  query="SELECT o FROM MyElementDO o WHERE <here goes some list of 
   conditions>")
@Table(name = "tblElement")
public class MyElementDO implements Serializable      
{
  //all mapped fields
}

在我的EJB类中,我通过

调用它
Query qry =manager.createNamedQuery("MyElementDO.findByAllStuff").
            setParameter("param1", value1).<some more setParameters() 
             >...setParameter("param_n", vaue_n);
    list =  qry.getResultList() ;

问题是,当我设计此查询并在SQL Server管理工作室中运行时,我得到3条记录(可以) 当Java EJB类执行它时,我得到1条记录。 实际查询非常大,有很多参数,其中一些是根据条件设置的。我想看看JBOSS Jvm正在执行的实际查询。所以,我的问题是:
如何启用日志?
我这样做了 - 在jBoss控制台中设置了登录类别,就像在这里找到的一样 HERE,在此页

然而,我对此输出非常不清楚,比如

\-[QUERY] Node: 'query'
+-[SELECT_FROM] Node: 'SELECT_FROM'
|  +-[FROM] Node: 'FROM'
|  |  \-[RANGE] Node: 'RANGE'
|  |     +-[DOT] Node: '.'
|  |     |  +-[DOT] Node: '.'
|  |     |  |  +-[DOT] Node: '.'
|  |     |  |  |  +-[DOT] Node: '.'
|  |     |  |  |  |  +-[IDENT] Node: 'com'
|  |     |  |  |  |  \-[IDENT] Node: 'package'
|  |     |  |  |  \-[IDENT] Node: 'subpackage'
|  |     |  |  \-[IDENT] Node: 'entity'
|  |     |  \-[IDENT] Node: 'MyElementDO'
|  |     \-[ALIAS] Node: 'o'
|  \-[SELECT] Node: 'SELECT'
|     \-[IDENT] Node: 'o'
\-[WHERE] Node: 'WHERE'
   \-[EQ] Node: '='
      +-[DOT] Node: '.'
      |  +-[DOT] Node: '.'
      |  |  +-[IDENT] Node: 'o'
      |  |  \-[IDENT] Node: 'RelatedTableDO'
      |  \-[IDENT] Node: 'someId'
      \-[COLON] Node: ':'
         \-[IDENT] Node: 'strPlanId'

而且,我想,我可以坐下来将其翻译成常规语法,但是我能获得正常的翻译SQL输出吗?

0 个答案:

没有答案