私は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が必要なのはなぜですか?私がアプリケーションのアイデンティティでそれらを定義すると、私はキーを提供するように求められ、私はそれを望んでいません、私はそれらを埋め込むことを望みます。
ご協力いただければ幸いです。
よろしくお願いいたします。私は仕事をスポンサーする立場にはいないが、プラグインを見てみよう...あなたの息を止めないでください:D – MartinMarco
@MartinMarcoプラグインを見ると、SVNトランクコードリリースされたバージョンだけではありません... SVNコードには、最後のリリースからいくつかの変更がありました(ただし、埋め込みオブジェクトではありません) – DataNucleus