2015-10-26 34 views
8

Abbiamo una query:Come rimuovere messaggio di avviso deprecazione Hibernate

List<Book> books = session.createQuery(
     "from Book b where :x member of b.bookCategories") 
     .setParameter("x", crimeStory) 
     .list(); 

Ma quando si esegue la query, abbiamo ottenuto un messaggio di avviso:

WARN 10:19:41 deprecazione: HHH90000016: Utilizzo trovato della sintassi deprecata della proprietà della collezione nella query HQL/JPQL [null.elements]; usa invece la sintassi della funzione di raccolta [elementi (null)].

Ho provato a cambiare la query:

List<Book> books = session.createQuery(
    "from Book b where ? in elements(b.bookCategories)") 
    .setParameter(0, crimeStory).list(); 

ma il messaggio di avvertimento era ancora lì.

Please help me per risolvere questo avviso.

P/s: Attualmente stiamo usando Hibernate 5.0.2

risposta

7

E 'APP legale e quindi non dovrebbe essere deprecato. Vedi anche http://download.oracle.com/otndocs/jcp/persistence-2.0-fr-oth-JSpec/.

Vedere https://hibernate.atlassian.net/browse/HHH-10621 per JIRA su questo errore.

Si potrebbe semplicemente nascondere il messaggio aggiungendo log4j.logger.org.hibernate.orm.deprecation=error al numero log4j.properties.

(so che questo era una vecchia questione, ma esso è usato nella chiamata JIRA)

+0

Proprio come un FYI, ho scoperto che cambiando il JPQL utilizzare un inner join risultati in una query molto più efficiente. – kensei62

0

Come nota a margine, per nascondere semplicemente (non risolvere) i messaggi come questo, come di e Log4j2 , utilizzare org.hibernate.orm.deprecation, ad esempio:

<Logger name="org.hibernate.orm.deprecation" additivity="false" level="WARN"> 
    <RegexFilter regex=".*HHH90000016.*" onMatch="DENY" onMismatch="NEUTRAL"/> 
    … 
</Logger> 

assicurarsi di utilizzare il codice specifico per il vostro messaggio particolare disapprovazione, in questo caso particolare era HHH90000016, ma per le avvertenze Criteri-API deprecazione sarebbe HHH90000022, e presto.

o disattivare tutti i messaggi deprecazione Hibernate (non raccomandato):

<Logger name="org.hibernate.orm.deprecation" additivity="false" level="ERROR"> 
    … 
</Logger> 
Problemi correlati