2012-03-02 13 views
0

JRuby Railsでehcacheを設定しようとしています。 ehcacheにJavaオブジェクトを格納するとうまく動作しますが、取得すると問題が発生します。もし私がehcacheが返すオブジェクトをトレースすると、私はこれを得ます:ehcache with JRuby Rails

[ key = mipsObject, [email protected], version=1, hitCount=1, 
    CreationTime = 1330679995356, LastAccessTime = 1330679995357 ] 

ここで私はどのように値にアクセスできますか?

私は、これが描かれているJavaオブジェクトやRubyのオブジェクトであるかどうか、本当にわからないんだけど...

コード:

デフstore_object(OBJ) EHCACHE.put( "OBJ"、 obj) end

def get_object EHCACHE.get( "obj")#は私に上記のオブジェクトを与えます。値を返すだけです end

答えて

1

Ehcache.getメソッドは、値とメタデータを含むEhcache Elementオブジェクトを返します。実際の値を取得する場合は、2つのオプションがあります。

Ehcache.get()が返すElementオブジェクトに対してgetValue()メソッドを呼び出すことができます。 JRubyのは、あなたが好む場合は、単に「値」として、このメソッドを呼び出すことができます:

第二には、代わりにEhcache.get()メソッドを使用しての、あなたが直接値を取得するには配列アクセス表記を使用することができます
EHCACHE.get("obj").value 

。これはJRubyバインディングでEhcache APIに追加したRubyの魔法の一部です:

EHCACHE["obj"] # returns the value directly 

希望するものがあります。

あなたはJRubyのでEhcacheのを使用しての詳細については、私のブログの記事を読むことができます: http://jvoegele.blogspot.com/2010/11/ehcache-for-jruby-and-rails-now-with.html

+0

Thxをジェイソンが、私はその瞬間にあなたのブログを読んであげます。その間、セッションストアとしてEHCACHEを使用できますか?言い換えれば、EHCACHEに何かを追加すると、それはアプリケーションの範囲または現在のセッションの範囲に追加されますか? –

+0

すばらしいブログ。恥、私は昨日それを見つけられませんでした。どうも。 –