2016-10-31 5 views
-3

を返し、私のリポジトリは@Autowiredはここにヌル

@Service 
public class FuneralPricingRepository { 

    @PersistenceContext 
    private EntityManager em; //this is null 

    public List<FuneralPricing> findAll() { 
     return this.em.createNativeQuery("SELECT * FROM FUNERALPRICING").getResultList(); 
    } 
} 

AS400callsあるautowiredしかしfuneralPricingRepositoryはありません。

public class TestFuneralPremiumProvider implements TestHandler { 

    @Autowired 
    private As400Calls as400Calls; //this is not null 

    @Autowired 
    private FuneralPricingRepository funeralPricingRepository; //this is null 

あなたがEntityManagerをこのように注入することができていない...

+0

チェックで注釈@Componentまたは宣言豆なしでこの

TestFuneralPremiumProvider 

に問題が 'FuneralPricingRepository'のパッケージは' componentscan'パスであるであると思いますか? – D0dger

+0

'@ Autowired'は' null 'にはなりません。依存関係を解決できない場合、アプリケーションは爆発します。そうでない場合は、自動配線を使用していないか、 'TestFuneralPremiumProvider'のインスタンスを自分で作成しています。 –

答えて

0

を助けてください。代わりにEntityManagerFactoryを注入してください。それで両方の注射がうまくいくはずです。

エンティティマネージャは、トランザクション内で実行されるクラスにのみ挿入できます。つまり、EJBにのみ注入することができます。他のクラスは、EntityManagerFactoryを使用してEntityManagerを作成および破棄する必要があります。

からSource

はcomponentscanパス内のパッケージであなたのRepositoryですか?まだ追加されていない場合は、

@ComponentScan("com.my.package.where.repository.is") 

リポジトリがあります。 Spring Data JPAを使用しない理由は何ですか?単にCRUDRepositoryを延長すると、無料でfindAllといくつかの方法が追加されます。

0

私は設定

+1

なぜ 'As400Calls'がヌルでないのですか? – dit

関連する問題