其实,这个地方我真心不是太明白,甚至说很混乱,但是有DAO和VO就啥都当对象来吧。
比如两个表User和Profile,通过外键将其关联起来,user的主键为profile的外键,通过Hibernate生成DAO和VO,则userDAO中会有很多查询user的方法,而user的VO会多一个set类的getProfiles(),如何通过这个set来查询VO的profile信息呢,查了一些资料,算是知道怎么回事儿了。
- public Set getProfiles() {
- return this.profiles;
- }
user VO的get方法得到的是profile类型的set,也就是说这个set迭代出来的是profile对象。使用方法可以是:
- User user = new User();
- Set<Profile> profileset = user.getProfiles();
- Iterator<Profile> iterator = profileset.iterator();
- While(iterator.hasNext()){
- Profile profile = iterator.next();
- System.out.print(profile.getEmail);
- }
这样子就迭代出来了。
对于profile的VO也同样有public User getUser()方法,可以直接返回user VO对象。
ProfileDAO如何通过外键来查找vo对象的方法:
- ProfileDAO profiledao = new ProfileDAO();
- Iterator<Profile> i = profiledao.findByProperty("user.id",1).iterator();
- while(i.hasNext()){
- Profile p = i.next();
- System.out.print(p.getEmail);
- }
有了上面的互相查询的方法,这个看着仿佛是多此一举,不过也还算可用。