Galera, tenho uma classe chamada empresa que é cacheada.
@Entity
@Table(name = "empresa")
@org.hibernate.annotations.Cache(usage=org.hibernate.annotations.CacheConcurrencyStrategy.READ_WRITE)
@NamedQueries( {
Estou usando o EhCache como fornecedor de cache.
Estou usando a propriedade
que desabilita o mapeamentos do cache, deste modo, todo o cache é desabilitado da aplicação,
(ao contrário seria necessário eu passar em todos os arquivos e retirar os mapeamentos de cahce)
mas quando rodar a aplicação, aparece este erro.
Exception in thread "main" java.lang.ExceptionInInitializerError
        at banco.HibernateUtil.<clinit>(HibernateUtil.java:45)
        at Main.Main.main(Main.java:36)
Caused by: org.hibernate.MappingException: invalid configuration
        at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1487)
        at org.hibernate.cfg.Configuration.configure(Configuration.java:1428)
        at banco.HibernateUtil.<clinit>(HibernateUtil.java:43)
        ... 1 more
Caused by: org.xml.sax.SAXParseException: The content of element type "session-factory" must match "(property*,mapping*,(class-cache|collection-cache)*,event*,listener*)".
        at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)
        at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:131)
        at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:384)
        at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:318)
        at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.handleEndElement(XMLDTDValidator.java:2017)
        at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.endElement(XMLDTDValidator.java:901)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1772)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2923)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:645)
        at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:508)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
        at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107)
        at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
        at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
        at org.dom4j.io.SAXReader.read(SAXReader.java:465)
        at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1484)
        ... 3 more
Alguém tem alguma idéia do que possa ser???
         
        
          
        
           
           
           
         
         
            
            
          
       
      
        
        
          Coloca aqui o teu xml de configuração do Hibernate. Tem algum problema nesse aquivo.
         
        
        
           
           
           
         
         
            
            
          
       
      
        
        
          hibernate.cfg.xml
[code]<?xml version=“1.0” encoding=“utf-8”?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
“http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd”>
<hibernate-configuration>
<session-factory>
<!-- properties -->
<property name=“connection.driver_class”>       com.mysql.jdbc.Driver   </property>
<property name=“connection.url”>    jdbc:mysql://localhost:3306/mono    </property>
<property name=“dialect”>     org.hibernate.dialect.MySQLDialect      </property>
<property name=“show_sql”>true</property>
<property name=“connection.username”>root</property>
<property name=“connection.password”>root</property>
<property name=“connection.pool_size”>10</property>
    <!--Pool de conexões-->
    
    <property name="hibernate.c3p0.min_size">5</property>  
    <property name="hibernate.c3p0.max_size">20</property>  
    <property name="hibernate.c3p0.timeout">300</property>  
    <property name="hibernate.c3p0.max_statements">50</property>  
    <property name="hibernate.c3p0.idle_test_period">3000</property>  
    
    <!-- Mostra o sql -->  
    <property name="show_sql">true</property> 
    <!-- Saída mais legível -->  
    <property name="format_sql">true</property>  
    <!-- Mostra de onde os sqls vem -->  
    <property name="use_sql_comments">true</property>  
    
    <!-- mapping classes -->
    <mapping class="model.Cliente" />
    <mapping class="model.Pedidocliente" />
    <mapping class="model.Empresa" />    
    
    
    <!-- Cache  -->           
    <property name="hibernate.cache.use_second_level_cache">true</property>         
    
    
</session-factory>
</hibernate-configuration>[/code]
ehcache.xml
[code]<?xml version="1.0" encoding="UTF-8"?>
<cache name="model.Empresa"
maxElementsInMemory="100"
eternal="false"
timeToIdleSeconds="300"
timeToLiveSeconds="600"
overflowToDisk=“false”
/>
[/code]
         
        
        
           
           
           
         
         
            
            
          
       
      
        
        
          Galera, acho que descobri o erro, eu mudei a parte onde defino os caches e coloquei no início do arquivo xml do hibernate, fiz dois testes, aqui um em cima e outro embaixo, realmente aquele que está em cima funciona,
Funcionou desta maneira
[code]<?xml version=“1.0” encoding=“utf-8”?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
“http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd”>
<hibernate-configuration>
<session-factory>
    <!-- Cache  -->           
    <property name="hibernate.cache.use_second_level_cache">true</property>   
    <property name="hibernate.cache.provider_class"> org.hibernate.cache.EhCacheProvider </property>
 
    
    <!-- properties -->
    <property name="connection.driver_class">       com.mysql.jdbc.Driver   </property>
    <property name="connection.url">    jdbc:mysql://localhost:3306/mono    </property>
    <property name="dialect">     org.hibernate.dialect.MySQLDialect      </property>
    <property name="show_sql">true</property>
    <property name="connection.username">root</property>
    <property name="connection.password">root</property>
    <property name="connection.pool_size">10</property>
    
    <!--Pool de conexões-->
    
    <property name="hibernate.c3p0.min_size">5</property>  
    <property name="hibernate.c3p0.max_size">20</property>  
    <property name="hibernate.c3p0.timeout">300</property>  
    <property name="hibernate.c3p0.max_statements">50</property>  
    <property name="hibernate.c3p0.idle_test_period">3000</property>  
    
    <!-- Mostra o sql -->  
    <property name="show_sql">true</property> 
    <!-- Saída mais legível -->  
    <property name="format_sql">true</property>  
    <!-- Mostra de onde os sqls vem -->  
    <property name="use_sql_comments">true</property>  
    
    <!-- mapping classes -->
    <mapping class="model.Cliente" />
    <mapping class="model.Pedidocliente" />
    <mapping class="model.Empresa" />    
    
    
    
    
    
</session-factory>
</hibernate-configuration>[/code]