1

私は関係のある3つのクラスを持っています:

  • メンバー1-nトラッカー
  • リンク1-nトラッカー

1対多の双方向の関係を所有している

@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class Member {
        @PrimaryKey
        @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
        private Key key;

        @Persistent(mappedBy = "member")
        private List<Tracker> trackers;

}

@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class Link {
        @PrimaryKey
        @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
        private Key key;

        @Persistent(mappedBy = "link")
        private List<Tracker> trackers;

}

@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class Tracker {
        @PrimaryKey
        @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
        private Key key;

        @Persistent
        private Member member;

        @Persistent
        private Link link;

} 

新しいトラッカーを作成します。

member = new Member();
member.name = "blah";

link = new Link();
link.url = "http://blahblah.blah";

tracker = new Tracker();
tracker.setMember(member);
tracker.setLink(link);

pm.makePersistent(tracker);//error

それは投げます

The class "The class "zodpob.model.Tracker" is not persistable. This
means that it either hasnt been enhanced, or that the enhanced version
of the file is not in the CLASSPATH (or is hidden by an unenhanced
version), or the Meta-Data/annotations for the class are not found."
is not persistable. This means that it either hasnt been enhanced, or
that the enhanced version of the file is not in the CLASSPATH (or is
hidden by an unenhanced version), or the Meta-Data for the class is
not found.

「拡張」とはどういう意味ですか?

関係のないクラスを永続化する場合、それはうまく機能します

4

1 に答える 1

2

DataNucleus プラグインを使用していることを確認してください....

ここに彼らのサイトがあります...

リンクテキスト

...Eclipse IDE にインストールする方法は次のとおりです...

リンクテキスト

...そして、ここにJDOでそれを使用するための簡単な説明があります....

リンクテキスト

お役に立てば幸いです。

于 2009-06-08T06:32:22.233 に答える