我有两个域对象,让我们的人到我们用户的最佳方式:什么是使用Spring的JdbcTemplate
- 用户(其中有一个人)
- 人
FYI :在我们的域名中有人员(人员:-)不是用户,所以我们不能将它们合并。
我想弄清楚将Person对象填充到User对象中的最佳方法。我已经提出了3种可能的解决方案,并对其他人的做法以及其他人可以看到的利弊感到好奇。
选项1:
有我们的UserDAO和PersonDao的有线到我们Userservice,然后有userService.getUser(userId)
呼叫userDAO.getUser(userId)
然后拿我们从取回用户和呼叫user.setPerson(personDao.getPerson(user.getPersonId()))
优点:唐'不得不在电讯局内道(不是那么糟糕...不知道)
缺点:有些事情似乎错了关于hav ing dao返回一个没有完全初始化的域对象吗?那么你不得不担心用户对象中是否有人。打两次数据库。此外,您还必须将personId添加到User对象,而不是仅具有Person对象。
选项2: 有userDAO的的的getUser()方法加入用户表与人表,然后UserRowMapper设置里面的用户,然后调用user.setPerson(personRowMapper.mapRow(rs, rowNum))
优点:不必电线在一道道内道(不是那么糟......不知道)。此外,您只需击中数据库一次,而不是在其他选项中击中数据库两次。
缺点:PersonRowMapper将是它自己的类,不封装在PersonDao(它应该是?)。
方案3:
有PersonDao的有线到userDAO的,然后就打电话user.setPerson(personDao.getPerson(rs.getLong("person_id")));
优点:该PersonDao的负责获取个人域对象和userDAO的不需要知道如何检索此人的详细信息。
缺点:personDao连接到userDao(是那么糟糕?)。打两次数据库。
感谢您的答复。我同意...... Marten Deinum也是如此:)。 http://forum.springsource.org/showthread.php?120868-What-is-the-best-way-to-get-our-Person-into-our-User-using-spring-jdbcTemplate&p=395709#post395709。至于用户是一个人,在大多数情况下是正确的,但我们正在做的事情并不一定如此。再次感谢! – testing123 2012-01-06 15:42:35