2017-05-15 5 views
1

I Hibernate mit Feder Anmerkung integriert bin mit und bekommen FileNotFoundException für meine Entity KlasseDatei nicht Ausnahme im Frühjahr Annotation Integration mit Hibernate gefunden

Das ist mein applicationContext.xml

<?xml version='1.0' encoding='UTF-8'?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
     http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> 


    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> 
     <property name="driverClassName" value="com.mysql.jdbc.Driver"></property> 
     <property name="url" value="jdbc:mysql://localhost:3306/db1"></property> 
     <property name="username" value="root"></property> 
     <property name="password" value="root"></property> 
    </bean> 

    <bean id="mysessionFactory" 
     class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> 
     <property name="dataSource" ref="dataSource"></property> 
     <property name="mappingResources"> 
      <list> 
       <value>vendors.Vendor</value> 
       <value>accountBooks.DayBookData</value> 
      </list> 
     </property> 
     <property name="hibernateProperties"> 
      <props> 
       <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> 
       <prop key="hibernate.hbm2ddl.auto">update</prop> 
       <prop key="hibernate.show_sql">true</prop> 

      </props> 
     </property> 
    </bean> 

    <bean id="template" class="org.springframework.orm.hibernate3.HibernateTemplate"> 
     <property name="sessionFactory" ref="mysessionFactory"></property> 
    </bean> 

    <bean id="vendor" class="vendors.VendorDao"> 
     <property name="hibernateTemplate" ref="template"></property> 
    </bean> 

    <bean id="dayBook" class="accountBooks.DayBookDao"> 
     <property name="hibernateTemplate" ref="template"></property> 
    </bean> 

</beans> 

My Dao Klasse

public class DayBookDao { 

    private HibernateTemplate hibernateTemplate; 

    public void setHibernateTemplate(HibernateTemplate hibernateTemplate) { 
     this.hibernateTemplate = hibernateTemplate; 
    } 

    public void saveDayBookData(DayBookData dayBook){ 
     hibernateTemplate.save(dayBook); 
    } 

    public void updateDayBookData(DayBookData dayBook){ 
     hibernateTemplate.update(dayBook); 
    } 

    public void deleteDayBookData(DayBookData dayBook){ 
     hibernateTemplate.delete(dayBook); 
    } 

    public List<DayBookData> getDayBookData(){ 
     List<DayBookData> dayBook = hibernateTemplate.loadAll(DayBookData.class); 
     return dayBook; 
    } 
} 

Meine Hauptklasse

public static void main(String[] args) { 
     // TODO Auto-generated method stub 

     Resource r = new ClassPathResource("applicationContext.xml"); 
     BeanFactory bean = new XmlBeanFactory(r); 

     DayBookDao dayBookDao = (DayBookDao) bean.getBean("dayBook"); 
     DayBookData dayBook = new DayBookData(); 
     dayBook.setAccountType("Bank Account"); 
     dayBook.setTransType("Receipt"); 
     dayBook.setOppAccount("Profit-Loss"); 
     dayBook.setAmount(15000); 
     dayBook.setTransDate(new Date()); 
     dayBookDao.saveDayBookData(dayBook); 
    } 

Ich erhalte Fehler

** Verursacht durch: java.io.FileNotFoundException: Classpath Ressource [vendors.Vendor] kann nicht geöffnet werden, weil es nicht

+0

Siehe dazu: http: // stackoverflow.com/a/23464958/1004631 –

+1

ist die Klasse 'Vendor' im Paket' verdors' direkt am Klassenpfad? – Jaiwo99

Antwort

0

Eigentum existiert mappingResources verwendet werden, für XML (hbm.xml) Zuordnung.

Hibernae 4 und höher

Sie müssen nur alle persistenten Klassen zum some.package.model Paket setzen und

<property name="packagesToScan" value="some.package.model" /> 

verwenden, um alle Klassen aus diesem Paket hinzufügen. Innere Pakete werden ebenfalls verarbeitet.

Sie können auch separat persistente Klassen hinzufügen

<property name="annotatedClasses"> 
    <list> 
     <value>vendors.Vendor</value> 
     <value>accountBooks.DayBookData</value> 
    </list> 
</property> 

Hibernate 3

Hibearnate 3 Konfiguration kommentierten persistente Klassen und Verwendung von Spring mit einem wenig komplex. Es ist persistente Klassen zum hibernate.cfg.xml hinzufügen müssen und auf diese Weise Frühling konfigurieren:

<bean id="mysessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> 
    <property name="configLocation"> 
    <value>classpath:hibernate.cfg.xml</value> 
    </property> 

    <property name="configurationClass"> 
    <value>org.hibernate.cfg.AnnotationConfiguration</value> 
    </property> 
</bean> 

Hibernate 3 verwendet eine separate Konfigurationsklasse für Konfigurationen mit Anmerkungen:

org.hibernate.cfg.AnnotationConfiguration 
+0

Es wirft org.springframework.beans.NotWritablePropertyException: Ungültige Eigenschaft 'packagesToScan' der Bean-Klasse [org.springframework.orm.hibernate3.LocalSessionFactoryBean] – poojadave

+0

@PoojaDave Ich denke, dass Sie eine alte 'Spring'-Version verwenden, ohne diese Eigenschaft. Mit 'annotierteKlassen' können Sie Klassen einzeln hinzufügen. http://StackOverflow.com/A/19746386/3405171 –

+0

Ich benutze Spring 3.2 und für annotierteClasses auch die gleiche Ausnahme, die ich bekomme. – poojadave

Verwandte Themen