面向 Java 开发人员的 db4o 指南: 结构化对象和集合
2010-04-01 00:00:00 来源:WEB开发网清单 8. 哇!办公室恋情!
@Test public void testEmployeeNativeQuery()
{
List<Employee> spouses =
db.query(new Predicate<Person>() {
public boolean match(Person candidate) {
return (candidate.getSpouse() instanceof Employee);
}
});
for (Person spouse : spouses)
System.out.println(spouse);
}
当执行此查询时,不会产生什么结果,因为现在此查询只查找配偶也在公司工作的 Employee。目前,数据库中的雇员都不满足这个条件。如果公司雇佣 Charlotte,那么会返回两个 Employee:Ted 和 Charlotte(但是人家说办公司恋情永远不会发生)。
在很大程度上,就是这样。继承不会对更新、删除和激活深度产生任何影响,只会影响到对象的查询方面。但是回想起 Java 平台提供的两种形式的继承:实现继承和接口继承。前者通过各种 extends 子句来实现,而后者通过 implements 来实现。如果 db4o 支持 extends,那么它也一定支持 implements,您将会看到,这有利于实现强大的查询功能。
都是关于接口的
就像任何 Java (或 C#)编程人员使用了一段时间这种语言后认识到的,接口对于建模非常有用。尽管不会经常看到,接口具有强大的 “隔离” 交叉在传统实现继承行中的对象的能力;通过使用接口,我可以声明某些类型为 Comparable 或者 Serializable,或者在本例中,Employable(是的,从设计的角度说这是大材小用了,但是用于教学还是很不错的)。
更多精彩
赞助商链接