请问一对多和多对多的关系在实体类里如何配置一对多:例如学生表和班级表@PersistenceCapable(identityType = IdentityType.APPLICATION)
class Student {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Long sid;
@Persistent
private String sname;
@ ????? 这里怎么写
private Classx;
// set() get() ...
}
@PersistenceCapable(identityType = IdentityType.APPLICATION)
class Classx {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Long sid;
@Persistent
private String sname;
@ ????? 这里怎么写
private Set<Students> Students;
// set() get() ...
}
多对多:例如图片表和标签表,一个图片可以有多个标签,一个标签可以属于多个图片 按照面向对象的数据库思想,省去了图片和标签之间的关系表。但是这么做的话JDOQL语句应该怎么写,Google给的示例都是单表的操作的。求助啊@PersistenceCapable(identityType = IdentityType.APPLICATION)
class Image {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Long iid;
@Persistent
private String isrc;
@ ????? 这里怎么写
private Set<Tag> tags;
// set() get() ...
}
@PersistenceCapable(identityType = IdentityType.APPLICATION)
class Tag {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Long tid;
@Persistent
private String tname;
@ ????? 这里怎么写
private Set<Image> images;
// set() get() ...
}
class Student {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Long sid;
@Persistent
private String sname;
@ ????? 这里怎么写
private Classx;
// set() get() ...
}
@PersistenceCapable(identityType = IdentityType.APPLICATION)
class Classx {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Long sid;
@Persistent
private String sname;
@ ????? 这里怎么写
private Set<Students> Students;
// set() get() ...
}
多对多:例如图片表和标签表,一个图片可以有多个标签,一个标签可以属于多个图片 按照面向对象的数据库思想,省去了图片和标签之间的关系表。但是这么做的话JDOQL语句应该怎么写,Google给的示例都是单表的操作的。求助啊@PersistenceCapable(identityType = IdentityType.APPLICATION)
class Image {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Long iid;
@Persistent
private String isrc;
@ ????? 这里怎么写
private Set<Tag> tags;
// set() get() ...
}
@PersistenceCapable(identityType = IdentityType.APPLICATION)
class Tag {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Long tid;
@Persistent
private String tname;
@ ????? 这里怎么写
private Set<Image> images;
// set() get() ...
}
解决方案 »
- 关于maxIdleTime的问题
- jsp 页面 插入ArrayList 报错。。为什么,已经加了import="java.util.*"了呀!!!!
- 大家是如何处理同时添加多条记录的?
- gwt 部署到tomcat 上的问题
- 【急求高手相助】关于JAVA APPLET 图像显示问题
- Cannot forward after response has been committed是怎么回事?
- jsp页面提交数据到servlet处理,之后返回到原jsp页面,怎样避免刷新重复提交?
- 有很好的创意,但个人实力有限怎么办?
- 高分求教组网方式
- Servlet与数据库连接不能显示中文
- 上传文件到数据库?
- 拜求jsp-ajax 一个能够运行的完整小实例!!!!!
只是,代表关系的对象,其类定义中必须声明 @PersistenceCapable(你的类已经符合这个要求了)。------------第二个问题,我也还不太清楚。
class Student {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key sid;
@Persistent
private String sname;
@Persistent
private Classx classx;
// set() get() ...
}
@PersistenceCapable(identityType = IdentityType.APPLICATION)
class Classx {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Long cid;
@Persistent
private String cname;
// set() get() ...
} 修改以后可以正常查询和添加了,但是添加时会抛出异常(不影响添加):JDOFatalUserException、NucleusUserException(Attempt was made to manually set the id component of a Key primary key. If you want to control the value of the primary key, set the name component instead.)还有一个问题就是JDO的外联语句怎么写?
来自:
http://code.google.com/appengine/docs/java/datastore/relationships.html