私は同僚と衝突しています。
Hibernate で Short-Lived-Sessions を実装すると仮定します。つまり
public int createUser(String eMail){
User u = new User();
u.setEMail(eMail);
em.persist(u);
return u.getUserId();
}
// time to think.
public void changeUserEMail(int userId, String newEMail){
User user = (User) em.find(User.class, userId);
user.setEMail(newEMail);
em.persist(user);
}
Short-Lived-Sessions です。私の同僚の意味は次のとおりです。
public User createUser(String eMail){
User user = new User();
user.setEMail(eMail);
em.persist(user);
return user;
} // detach after call
// time to think
public void changeUserEMail(User user, String newEMail) {
em.merge(user); // attach
user.setEMail(eMail);
em.persist(user);
} // detach after call
Short-Lived-Session もあります。
誰がより正しいですか?