Java 在控制台中打印TypedQuery

Java 在控制台中打印TypedQuery,java,hibernate,jpa,Java,Hibernate,Jpa,如何在eclipse控制台中执行sysoutTypedQuery。我正在尝试使用.toString(),但它不起作用 请在下面找到我的java代码 TypedQuery<PartFactor> query = entityManager .createQuery("from PART where partNo = :partNo ", Part.class); query.setParameter("partNo", p

如何在eclipse控制台中执行
sysout
TypedQuery。我正在尝试使用
.toString()
,但它不起作用

请在下面找到我的java代码

TypedQuery<PartFactor> query = entityManager
        .createQuery("from PART where partNo = :partNo ", Part.class);
    query.setParameter("partNo", partNo);
    query.setMaxResults(1);
    System.out.println("isPartNoExists -->"+query.toString());
TypedQuery query=entityManager
.createQuery(“来自partNo=:partNo的零件”,PART.class);
query.setParameter(“零件号”,零件号);
query.setMaxResults(1);
System.out.println(“isPartNoExists-->”+query.toString());

您需要为以下类别启用日志记录:

org.hibernate.SQL   - set to debug to log all SQL DML statements as they are executed
org.hibernate.type - set to trace to log all JDBC parameters
因此,log4j配置可能如下所示:

# logs the SQL statements
log4j.logger.org.hibernate.SQL=debug 

# Logs the JDBC parameters passed to a query
log4j.logger.org.hibernate.type=trace 
第一个属性相当于hibernate.show_sql=true legacy属性,第二个属性打印绑定的参数以及其他内容

另一个解决方案(非基于hibernate)是使用像P6Spy这样的JDBC代理驱动程序

如果正在使用spring boot,只需配置以下内容:

应用程序

logging:
      level:
        org.hibernate.SQL: DEBUG
        org.hibernate.type: TRACE
应用性能

logging.level.org.hibernate.SQL=DEBUG
logging.level.org.hibernate.type=TRACE
没别的了

您的日志如下所示:

2020-11-01 | DEBUG | o.h.SQL:127 - insert into Person (id, name, title, id) values (?, ?, ?, ?)

您需要为以下类别启用日志记录:

org.hibernate.SQL   - set to debug to log all SQL DML statements as they are executed
org.hibernate.type - set to trace to log all JDBC parameters
因此,log4j配置可能如下所示:

# logs the SQL statements
log4j.logger.org.hibernate.SQL=debug 

# Logs the JDBC parameters passed to a query
log4j.logger.org.hibernate.type=trace 
第一个属性相当于hibernate.show_sql=true legacy属性,第二个属性打印绑定的参数以及其他内容

另一个解决方案(非基于hibernate)是使用像P6Spy这样的JDBC代理驱动程序

如果正在使用spring boot,只需配置以下内容:

应用程序

logging:
      level:
        org.hibernate.SQL: DEBUG
        org.hibernate.type: TRACE
应用性能

logging.level.org.hibernate.SQL=DEBUG
logging.level.org.hibernate.type=TRACE
没别的了

您的日志如下所示:

2020-11-01 | DEBUG | o.h.SQL:127 - insert into Person (id, name, title, id) values (?, ?, ?, ?)
尝试将Hibernate的日志记录设置为“调试”级别以查看生成的SQL。尝试将Hibernate的日志记录设置为“调试”级别以查看生成的SQL。