我有兩個域對象,讓我們的人到我們用戶的最佳方式:什麼是使用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