2016-04-25 7 views
3

オブジェクトを挿入および取得し、Springキャッシュ抽象化を使用できるサービスクラスを考えると、オプションが返される方法でメソッドに注釈を付けるにはどうすればよいですか?上記の例でJava 8の処理Springキャッシュでのオプション

class MyServiceImpl implements MyService { 

    private static final String CACHE_NAME = "itemCache";  

    @Override 
    @Cacheable(CACHE_NAME) 
    public Optional<Item> findById(Long id) { 
     // access the repository to retrieve the item 
    } 

    @Override 
    @CachePut(cacheNames = CACHE_NAME, key = "#item.id") 
    public Item insertItem(Item item) { 
     ... 
    } 

} 
insertItem

がキャッシュにItemインスタンスを置き、そしてfindByIdItemインスタンスを含んでいてもよいOptionalを期待するので、ClassCastExceptionがスローされます。

+2

'Optional'はまだサポートされていません。私たちはそれを行うことができると思う、問題を作成してください。 –

+0

お返事ありがとうございます。私はちょうどhttps://jira.spring.io/browse/SPR-14230を作成しました – andrucz

+0

うわー、私は今休暇中です。そして、Juergenはすでにそれを実装しています。それは速かった ;-) –

答えて

2

これに決定的な答えを与えるためにコメントをフォローアップしてください。私たちはSpring Framework 4.3の時点で行います。RC2

関連する問題