Во-первых, я новичок в Spring, и я не совсем понимаю, как он обрабатывает транзакции Hibernate, поэтому не стесняйтесь рассказать мне кое-что об этом! : D
Я пишу приложение со стандартным уровнем Controller, Service, Data Access и Persistence. Так у меня есть например FileController, FileService, FileDao, с SpringFramework для обработки Hibernate.
</p>
<pre><code>@Service
public class FileService {
@Autowired
FileDao fileDao;
public FileService() {}
@Transactional
public File getRootFile() {
return fileDao.getRootFile();
}
@Transactional
public File getById(long id) {
return fileDao.getById(id);
}
@Transactional
public void save(File file) {
fileDao.save(file);
}
}
Я также использую шаблон OpenSessionInView с OpenSessionInViewInterceptor.
У меня есть два вопроса:
- Должен ли я использовать грязную проверку с открытым сеансом в представлении? Может ли это привести к тому, что какие-либо изменения, которые представление потенциально может внести в модель, будут сохранены?
- Если грязная проверка - хорошая идея, как мне это сделать? Похоже, что сейчас мне нужно сделать вызов
save()
или update()
, иначе грязные объекты не будут сохранены после возвращения моего контроллера.
Заранее спасибо!