2014-09-05 97 views
4

我有一個系統與Hibernate 4.1.7和Spring 1.3.4 jpa。當我運行myEntity.findOne(id)時,在控制檯中的休眠WARN日誌記錄:與WARN Hibernate在控制檯登錄HHH000174

[main];警告; org.hibernate.dialect.function.TemplateRenderer; - HHH000174:函數模板預期有四個參數,但首次遇到參數 。

瞭解有關在一些可能的解決方案,但解決不了我的問題在http://jira.xwiki.org/browse/XWIKI-9215https://hibernate.atlassian.net/browse/HHH-6280

我檢查的代碼記錄在org.hibernate.dialect.function.TemplateRenderer

@SuppressWarnings({ "UnusedDeclaration" }) 
    public String render(List args, SessionFactoryImplementor factory) { 
     int numberOfArguments = args.size(); 
     if (getAnticipatedNumberOfArguments() > 0 && numberOfArguments != getAnticipatedNumberOfArguments()) { 
      LOG.missingArguments(getAnticipatedNumberOfArguments(), numberOfArguments); 
     } 
     StringBuilder buf = new StringBuilder(); 
     for (int i = 0; i < chunks.length; ++i) { 
      if (i < paramIndexes.length) { 
       final int index = paramIndexes[i] - 1; 
       final Object arg = index < numberOfArguments ? args.get(index) : null; 
       if (arg != null) { 
        buf.append(chunks[i]).append(arg); 
       } 
      } 
      else { 
       buf.append(chunks[i]); 
      } 
     } 
     return buf.toString(); 
    } 
+0

答案張貼爲您接受 – 2014-09-05 15:42:11

回答

5

首先良好的科研

是的,這是與Hibernate提出作爲一個bug較早,並提供了一個修復也。但由於缺乏測試用例,它被拒絕,並且從未作爲後續發行版的一部分發布。

該錯誤是作爲Hibernate 3.6的一部分引入的。

所以還是需要等人提高票價,並提供合適的測試用例和修復。

參考here瞭解更多詳情。

+0

這是幫助我=) – diegohsi 2017-12-28 11:54:44

0

被引用的(根本原因)休眠錯誤HHH-5676被拒絕,所以我預計在不久的將來這個警告沒有改進。

有一種方法可以關閉它,至少如果它讓你煩惱。您可以將hibernate類TemplateRenderer的日誌級別限制爲ERROR。 TemplateRenderer類執行此日誌,並且(此時)這是該類中唯一的日誌記錄。這取決於你的記錄器如何去做。在我的情況下:

logger.org.hibernate.dialect.function.TemplateRenderer.level=ERROR 

隱藏這是有風險的,因爲顯而易見的原因。小心操作!