• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

面向Java开发人员db4o指南:数组和集合

发布: 2008-4-28 10:27 | 作者: 不详 | 来源: 无 | 查看: 23次 | 进入软件测试论坛讨论

领测软件测试网

理解关系 

您可能会感到奇怪,清单 5 中显示的基于 Collection 的类型(ArrayList)没有被存储为 Person 类型的 “dependents”,而是被存储为一个成熟的对象。这还说得过去,但是当对对象数据库中的 ArrayList 运行一个查询时,它可能,有时候也确实会导致返回奇怪的结果。由于目前数据库中只有一个 ArrayList,所以还不值得运行一个探察测试,看看当对它运行一个查询时会出现什么情况。把这作为留给您的练习。

自然地,存储在一个集合中的 Person 也被当作数据库中的一级实体,所以在查询符合某个特定标准(例如所有女性 Person)的所有 Person 时,也会返回 ArrayList 实例中引用到的那些 Person,如清单 6 所示。

清单 6. 什么是 Julia?

@Test public void findTheGirls()
{
List<Person> girls = 
db.query(new Predicate<Person>() {
public boolean match(Person candidate) {
return candidate.getGender().equals(Gender.FEMALE); 
}
}); 
boolean maggieFound = false; 
boolean kaylaFound = false; 
boolean juliaFound = false; 
for (Person p : girls)
{
if (p.getFirstName().equals("Maggie"))
maggieFound = true; 
if (p.getFirstName().equals("Kayla"))
kaylaFound = true; 
if (p.getFirstName().equals("Julia"))
juliaFound = true; 
}

assertTrue(maggieFound); 
assertTrue(kaylaFound); 
assertTrue(juliaFound); 
}

注意,对象数据库将尽量地使引用 “correct” — 至少在知道引用的情况下如此。例如,分别在两个不同的查询中检索一个 Person(也许是母亲)和检索另一个 Person(假设是女儿),仍然认为她们之间存在一个双向关系,如清单 7 所示。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网