Java 开发 2.0: 使用 Amazon SimpleDB 实现云存储,第 2 部分:使用 SimpleJPA 实现简单对象持久化
2010-09-16 00:00:00 来源:WEB开发网清单 1. 一个简单的 Race 对象
public class Race {
private String name;
private String location;
private double distance;
private List<Runner> runners;
//setters and getters left out...
}
在 清单 1 中,我给 Race 对象设置了 4 个属性,最后一个是一个选手 Collection。接下来,我可以创建一个简单的 Runner 对象(如清单 2 所示),它包含每位选手的姓名(现在我将尽量保持简单),与他/她所参加的 Race 实例相关的 SSN。
清单 2. 与 Race 相关的一个简单的 Runner
public class Runner {
private String name;
private String ssn;
private Race race;
//setters and getters left out...
}
您可以从 清单 1 和 2 看到,我在选手和比赛之间逻辑上建立了一个多对一的关系。在实际情况中,可能多对多关系更准确些(选手一般会参加多个比赛),但是这里这样做是为了简单起见。另外,现在我也忽略构造函数、setter 和 getter。我将在后面向您介绍。
JPA 中的注释
要使这两个对象能够使用 SimpleJPA 并不是很难。首先,我需要通过为每个对象添加 @Entity 注释来将它们变成可持久化的。我也需要在 Race 对象中使用 @OneToMany,在 Runner 对象中使用 @ManyToOne 来正确定义它们的关系。
@Entity 注释是在类上标注的,而关系注释是在 getter 函数上标注的。这些注释见清单 3 和 4:
清单 3. JPA 注释的 Race
@Entity
public class Race {
private String name;
private String location;
private double distance;
private List<Runner> runners;
@OneToMany(mappedBy = "race")
public List<Runner> getRunners() {
return runners;
}
//other setters and getters left out...
}
更多精彩
赞助商链接