Java JPA仪器
在JPA中打开EntityManagerFactory时是否可能看到生成的DDL?我似乎有错误,但没有产生错误。我没有看到任何类型的日志文件,也没有向StdOut或StdErr写入输出。我在src/main/resources中有一个log4j.properties:Java JPA仪器,java,hibernate,logging,jpa,log4j,Java,Hibernate,Logging,Jpa,Log4j,在JPA中打开EntityManagerFactory时是否可能看到生成的DDL?我似乎有错误,但没有产生错误。我没有看到任何类型的日志文件,也没有向StdOut或StdErr写入输出。我在src/main/resources中有一个log4j.properties: log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.out log4j.appender.stdo
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
log4j.rootLogger=debug, stdout
log4j.logger.org.hibernate=debug
log4j.logger.org.hibernate.SQL=debug
log4j.logger.org.hibernate.engine.CascadingAction=debug
log4j.logger.org.hibernate.tool.hbm2ddl=debug
我甚至不确定文件是否被识别。有没有办法让我找到答案?如何更好地了解Hibernate和/或JPA的操作?我基本上没有输出(除了程序中的System.out.println()。尝试在persistence.xml中的持久单元中添加以下内容
<properties>
<property name="hibernate.show_sql" value="true"/>
</properties>
不太确定它是否会为您提供所需的信息,但应该会为您提供一些额外的输出。尝试在persistence.xml中的persistence单元中添加以下内容
<properties>
<property name="hibernate.show_sql" value="true"/>
</properties>
不太确定它是否会提供您正在查找的信息,但应该会提供一些额外的输出。要确定是否拾取了log4j.properties文件,您可以在其中引入故意错误(例如拼写错误的
ConsoleAppender
类名)。如果确实拾取了文件,Log4j应该放大,或者至少在控制台中显示错误
就DDL而言,我使用的是Hibernate和Spring,而不是JPA和YMMV,但是:
最好的办法是查看EntityManagerFactory代码,找出脚本的执行位置,并查看是否有任何日志记录围绕它进行;然后,您将知道需要在log4j.properties中配置什么包,以确定是否拾取了log4j.properties文件。您可以在其中引入故意错误(例如,拼写错误的
ConsoleAppender
类名)。如果确实拾取了文件,Log4j应该放大,或者至少在控制台中显示错误
就DDL而言,我使用的是Hibernate和Spring,而不是JPA和YMMV,但是:
最好的办法是查看EntityManagerFactory代码,找出脚本的执行位置,并查看是否有任何日志记录围绕它进行;然后,您就知道需要在log4j.properties中配置什么包了,这并不能解决您的第一个问题,但我总是将mye应用程序名称添加到.ConversionPattern中。这样,我就可以快速找出是否应用了更改,并将多个应用程序记录到同一个文件中
log4j.appender.stdout.layout.ConversionPattern=MyApp1 - %d{ABSOLUTE} %5p %c{1}:%L - %m%n
这并不能解决您的第一个问题,但我总是将mye应用程序名称添加到.ConversionPattern中。这样,我就可以快速找出是否应用了更改,并将多个应用程序记录到同一个文件中
log4j.appender.stdout.layout.ConversionPattern=MyApp1 - %d{ABSOLUTE} %5p %c{1}:%L - %m%n
谢谢我还尝试了hibernate.format\u sql=true。只需打开和关闭会话,即可生成模式,但无输出。我真的被难住了。谢谢。我还尝试了hibernate.format\u sql=true。只需打开和关闭会话,即可生成模式,但无输出。我真的被难住了。