İ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
}
Hangi '@ Entity 'açıklamasını kullanıyorsunuz? –
@ m-deinum import javax.persistence.Entity; – Pragmatic
"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. –