0

オブジェクトをデータストアに保存する際に問題が発生しています。保存しようとしているオブジェクト MyObject がありますが、コードを実行しても何も起こりません。データストア ダッシュボードを見に行くと、MyObject がありません。例外はスローされず、エラーもありません。

これが私のオブジェクトです

@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class MyObject{

@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key key;

@Persistent
String name;

@Persistent
String beta;

@Persistent
double loc;


public MyObject(String name1){
    name = name1;
}

//getters and setters
}

オブジェクトを保存するコードは次のとおりです

public static void saveMyObject(MyObject a)throws Exception{
    PersistenceManager pm = PMF.get().getPersistenceManager();
    try{
        pm.makePersistent(a);
    }
    catch(Exception e){
        throw e;
    }
    finally{
        pm.close();
    }
}

誰かが私が見逃しているものを見ることができますか?

4

1 に答える 1

0

JDOを使用しているようですので、JDOタグを追加するか、どこかに言及してください....

私は交換します

try
{
  pm.makePersistent(a);
}

try
{
  MyObject myObj = new MyObject(a.getName());    // or whatever the getter is
  myObj.setField2(a.getField2());                // Copy 1 data member from a
  ...                                            // Make a MyObject.copy(...) method?
  pm.makePersistent(myObj);
}

重要なことは、JDO がエンハンスメントを使用することです。つまり、メインの Java コンパイルの後に挿入されるマジック バイトコードです。拡張のライフサイクル (「スコープ」) 内で永続エンティティ オブジェクトを操作して、JDO を機能させます。

書き込みにもトランザクションを使用します (JDO 自動トランザクション設定がわかりません)。新しい永続エンティティを作成して永続化するときは、常にトランザクションを使用します。上記の変更が機能しない場合は、それを試してください。

于 2012-06-11T11:09:24.143 に答える