appengine - java 持久化

Posted

技术标签:

【中文标题】appengine - java 持久化【英文标题】:appengine - java persistent 【发布时间】:2009-05-12 10:43:44 【问题描述】:

我有 3 个有关系的班级:

成员 1-n 跟踪器 链接 1-n 跟踪器

拥有一对多的双向关系

@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.

什么是“增强”?

如果我坚持一个没有关系的类,它工作得很好

【问题讨论】:

我不知道 appengine 但增强听起来像是某种字节码增强。也许 appengine 在运行代码之前需要一个准备步骤? 他们确实使用 DataNucleus 来增强它。 【参考方案1】:

确保您使用的是 DataNucleus 插件......

这是他们的网站...

link text

...这里是如何将它安装到 Eclipse IDE...

link text

...这里是与 JDO 一起使用它的一个 tut....

link text

希望对你有帮助,祝你好运。

【讨论】:

以上是关于appengine - java 持久化的主要内容,如果未能解决你的问题,请参考以下文章

java为啥需要持久化?

Java对象在Hibernate持久化层的状态

Java对象在Hibernate持久化层的状态

java消息队列是怎么实现数据持久化的

持久化java对象的最简单方法是啥?

java jOOQ持久化