2013-11-24 24 views

cevap

8

elle bir JpaRepositoryFactoryBean bildirerek bireysel depo örneklerini oluşturabilirsiniz:

@Configuration 
class Config { 

    @Bean 
    public JpaRepositoryFactoryBean userRepository() { 
    JpaRepositoryFactoryBean factory = new JpaRepositoryFactoryBean(); 
    factory.setRepositoryInterface(UserRepository.class); 
    return factory; 
    } 
} 

Bu Bahar fabrikadan depo vekil elde etmek getObject() arayıp potansiyel müşteriler enjekte neden olur. Bununla birlikte, - açıkça yanlış yapılandırılmadığı takdirde - depolar için tarama başlığının ihmal edilebileceğini iddia ediyorum. EntityManagerFactory'u başlatan zamanla karşılaştırır. Eğer sadece somut depo fasulye yapılandırmak istiyorsanız

+1

Teşekkür Oliver !! –

+1

Bileşen taraması, bazı bulut çalışma zamanlarında (yani Google App Engine'de), uygulama örneklerinin belirli bir süre sonunda "ısınması" (temel olarak tam yeniden dağıtım) gerektiren bir performans ağrısı olabilir. Çözümünüz beklediğinizden daha yararlı olabilir, teşekkürler! –

+0

@Oliver Gierke Bu her şey güzel ama küçük bir sorun var. Uygulamam çok kullanıcılı olduğundan, yukarıdaki gibi JpaRepositoryFactoryBean'ı oluşturamıyorum. tembel yaratmanın bir yolu var mı? Ayrıca JpaRepositoryFactoryBean userRepository ile eklenmiştir, bunun için birden fazla fabrika fasulyesi nasıl oluşturulur? –

1

doğrudan şöyle oluşturmak için fabrika kullanabilirsiniz:

@Configuration 
public class NotificationConfig { 

    @Bean 
    public NotificationRepository notificationRepository(EntityManager entityManager) { 
     JpaRepositoryFactory jpaRepositoryFactory=new JpaRepositoryFactory(entityManager); 
     return jpaRepositoryFactory.getRepository(NotificationRepository.class); 
    } 

} 
İlgili konular