" https://forum.hibernate.org/viewtopic.php?p=2404391"的cotext - 我添加了" org.hibernate.engine.internal.StatefulPersistenceContext" log4j.properties中的ERROR以及#34; org.hibernate.engine.internal"错误。
然而HHH000179警告仍未被抑制。我的hibernate版本是5.2.10。我试图从这个版本检查StatefulPersistenceContext的代码,并有以下代码:
if(!alreadyNarrow){ LOG.narrowingProxy(concreteProxyClass);
除非这里代码添加了检查以检查是否启用了日志记录级别WARN,否则即使提到此类的ERROR级别,如何抑制它?
对于跟踪级别,同一文件中的代码为:
final boolean tracing = LOG.isTraceEnabled();
if ( tracing ) {
LOG.trace( "Serializing persistent-context" );
}
我认为类似的逻辑应该用于WARN以抑制' HHH000179'
如果已经解决这个问题,或者有任何其他方法可以抑制此警告,那我真的很有意思吗?
答案 0 :(得分:1)
请阅读下面提供的信息,以解释记录HHH000179-narrowing-proxy-to-class-
警告的情况。
https://marcin-chwedczuk.github.io/HHH000179-narrowing-proxy-to-class-this-operation-breaks-equality
答案 1 :(得分:0)
尝试log4j.logger.org.hibernate.engine.internal.StatefulPersistenceContext=ERROR
。
对于logstash,我使用了
<logger name="org.hibernate.engine.internal.StatefulPersistenceContext" level="ERROR"/>
对我有用。
UPD:我同意以下答案,请先阅读that article。但是,如果您使用相等行为是安全的(没有集合,或者将实体与getId
而不是equals
进行比较,或者如果您不安全但可以通过适当的相等来保护自己,则可以关闭这条令人讨厌的消息-那么您可以隐藏此消息,因为覆盖等于不会为您隐藏它。