2011-12-30 8 views
1

私はRDBMSとMySQLを使用して問題なく永続化している埋め込みメンバを持つオブジェクトを持っています。Amazon S3、datanucleus、JDOおよび埋め込みオブジェクト

私はS3にデータストア(JSONプラグイン)を変更すると、私は次の例外を取得:

@Persistent 
@Embedded(members = { 
... 
}) 
private Member member_; 

@PersistenceCapable(detachable="true") 
@EmbeddedOnly 
public class Member implements Serializable { 
:myproject.MyObjectで

Dec 30, 2011 9:50:30 AM org.datanucleus.state.JDOStateManagerImpl isLoaded 
WARNING: Exception thrown by StateManager.isLoaded 
This constructor is only for objects using application identity. 
org.datanucleus.exceptions.NucleusUserException: This constructor is only for objects using application identity. 
    at org.datanucleus.state.JDOStateManagerImpl.initialiseForHollowAppId(JDOStateManagerImpl.java:226) 
    at org.datanucleus.state.ObjectProviderFactory.newForHollowPopulatedAppId(ObjectProviderFactory.java:119) 
    at org.datanucleus.store.json.fieldmanager.FetchFieldManager.getObjectFromJSONObject(FetchFieldManager.java:322) 
    at org.datanucleus.store.json.fieldmanager.FetchFieldManager.fetchObjectField(FetchFieldManager.java:250) 
    at org.datanucleus.state.AbstractStateManager.replacingObjectField(AbstractStateManager.java:2228) 
    at myproject.MyObject.jdoReplaceField(Unknown Source) 
    at myproject.MyObject.jdoReplaceFields(Unknown Source) 
    at org.datanucleus.state.JDOStateManagerImpl.replaceFields(JDOStateManagerImpl.java:1949) 
    at org.datanucleus.state.JDOStateManagerImpl.replaceFields(JDOStateManagerImpl.java:1976) 
    at org.datanucleus.store.json.JsonPersistenceHandler.fetchObject(JsonPersistenceHandler.java:269) 
    at org.datanucleus.state.JDOStateManagerImpl.loadFieldsFromDatastore(JDOStateManagerImpl.java:1652) 
    at org.datanucleus.state.JDOStateManagerImpl.loadSpecifiedFields(JDOStateManagerImpl.java:1254) 
    at org.datanucleus.state.JDOStateManagerImpl.isLoaded(JDOStateManagerImpl.java:1742) 
    at myproject.MyObject.jdoGetmember_(Unknown Source) 
    at myproject.MyObject.getMember(Unknown Source) 

member_は以下のように定義されます

(アプリケーションIDなし、鍵なし)

jdoconfig.xmlはおおよそ次のとおりです。

<jdoconfig 
    xmlns="http://java.sun.com/xml/ns/jdo/jdoconfig" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:noNamespaceSchemaLocation="http://java.sun.com/xml/ns/jdo/jdoconfig"> 
    <persistence-manager-factory name="trans-optional"> 
    <property name="javax.jdo.PersistenceManagerFactoryClass" 
       value="org.datanucleus.api.jdo.JDOPersistenceManagerFactory"/> 
    <property name="datanucleus.ConnectionURL" 
       value="amazons3:http://s3.amazonaws.com/"/> 
    <property name="datanucleus.ConnectionUserName" 
       value="..."/> 
    <property name="datanucleus.ConnectionPassword" 
       value="..."/> 
    <property name="datanucleus.cloud.storage.bucket" 
       value="mybucket"/> 
    </persistence-manager-factory> 
</jdoconfig> 

私はSupported Features表にしてきたが、私は、私は完全にそれを理解していない認めなければなりません。

jsonプラグインが埋め込みオブジェクトをサポートしていないといってもいいですか? 埋め込みオブジェクトにアプリケーションIDが必要なのはなぜですか?私がアプリケーションのアイデンティティでそれらを定義すると、私はキーを提供するように求められ、私はそれを望んでいません、私はそれらを埋め込むことを望みます。

ご協力いただければ幸いです。

答えて

0

サポート機能テーブルは非常に明確に(私には)言うように、機能のJSONデータストアの列に対するCROSSがある「組み込みPC」、したがってそれはそのデータストアはサポートされていません。一部のユーザー/企業が、彼らはどちらか

  1. 更新でき、そのような機能を望んで明らか場合例えばODF プラグインのために働く
  2. スポンサーを行っていたようJSONのプラグインは、それをサポートします。

また、そのデータストアが埋め込まれたオブジェクトを使用しないでください。

+0

よろしくお願いいたします。私は仕事をスポンサーする立場にはいないが、プラグインを見てみよう...あなたの息を止めないでください:D – MartinMarco

+0

@MartinMarcoプラグインを見ると、SVNトランクコードリリースされたバージョンだけではありません... SVNコードには、最後のリリースからいくつかの変更がありました(ただし、埋め込みオブジェクトではありません) – DataNucleus

関連する問題