2013-12-18 24 views
8

İlkbahar 3.2.4 ve Hazırda Bekletme 4.2.3 tabanlı bir web uygulamasına sahibiz. Appfuse 2.2.1 archetype kullanılarak oluşturuldu. Mevcut belgelere göre, varlık sınıflarını dinamik olarak almak ve sessionFactory'yi kurmak için SessionFactory'nin packagesToScan özelliğini kullanabiliriz. Ancak, hibernate.cfg.xml dosyasındaki varlık sınıfı adını, hazırda bekletme tarafından tanınması için açıkça belirtmemiz gereken bir sorunla karşı karşıyayız. Forumlarda uygun bir yanıt bulamadım, bu yüzden burada gönderme. Nasıl çalıştığına dair anlayışım yanlış olabilir, bu yüzden herhangi bir işaretçi kabul edilir.hibernate 4 oturum açan paketlerBir kullanım özelliği

Teşekkür

applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?> 
<beans -- namespace declarations here 
     default-lazy-init="true"> 
    <!-- Activates scanning of @Autowired --> 
    <context:annotation-config/> 
    <!-- Activates scanning of @Repository and @Service --> 
    <context:component-scan base-package="com.xyz"/> 
</beans> 

hibernate.cfg.xml

<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" 
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> 
<hibernate-configuration> 
    <session-factory> 
     <mapping class="com.xyz.model.Address" /> 
     <mapping class="com.xyz.model.Company" /> 
     <mapping class="com.xyz.model.CompanyBilling" /> 
     <!-- BIG LIST OF MY ENTITY CLASSES --> 
    </session-factory> 
</hibernate-configuration> 

ApplicationContext-dao.xml

<?xml version="1.0" encoding="UTF-8"?> 
<beans -- namespace declarations here 
     default-lazy-init="true"> 
    <bean class="org.springframework.orm.hibernate4.HibernateExceptionTranslator"/> 
    <bean class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor"/> 
    <!-- Hibernate SessionFactory --> 
    <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean" destroy-method="destroy"> 
     <property name="dataSource" ref="dataSource"/> 
     <property name="configLocation" value="classpath:hibernate.cfg.xml"/> 
     <property name="hibernateProperties"> 
      <props> 
       <prop key="hibernate.dialect">${hibernate.dialect}</prop> 
       <prop key="hibernate.query.substitutions">true 'Y', false 'N'</prop> 
       <prop key="hibernate.cache.use_second_level_cache">true</prop> 
       <prop key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop> 
      </props> 
     </property> 
     <property name="packagesToScan"><list><value>com.xyz.model</value></list></property> 
    </bean> 
<!-- Transaction manager for a single Hibernate SessionFactory (alternative to JTA) --> 
    <bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"> 
     <property name="sessionFactory" ref="sessionFactory"/> 
    </bean> 
    <!-- Activates scanning of @Autowired --> 
    <context:annotation-config/> 
    <!-- Activates scanning of @Repository --> 
    <context:component-scan base-package="com.xyz.dao"/> 
</beans> 

Company.java

package com.xyz.model; 
// imports 
@Entity 
@Table(name = "company") 
@SQLDelete(sql = "UPDATE company SET activeFlag = 0, lastupdated=now() WHERE id = ?") 
@Where(clause = "1=activeflag") 
@Component 
public class Company extends BaseEntity implements java.io.Serializable { 
    // properties and getter setters 
} 
+1

Hangi '@ Entity 'açıklamasını kullanıyorsunuz? –

+0

@ m-deinum import javax.persistence.Entity; – Pragmatic

+0

"hibernate.cfg.xml" olmadan denediniz mi? Daha önce taranmış varlıkları geçersiz kılan (boş) varsa. Sadece neden varlığınızda bir '@ Bileşeni var diye merak ediyorum, bu gerçekten mantıklı değil. –

cevap

-4

Değişimi:

<property name="packagesToScan"><list><value>com.xyz.model</value></list></property> 

için:

<property name="packagesToScan" value="com.xyz.model" /> 

Bu benim için çalışır.

1

İkinci özellik paketleriToScan, açıklamalı varlık sınıflarını otomatik olarak taramak için Java paketini belirtir. Bu şekilde, Hazırda Bekletme eşleme dosyasını hazırlamak artık gerekli değildir.

İlgili konular