Итак, у меня есть эта общая вещь DAO, и по номиналу мне кажется, что все в порядке. Это в основном смоделировано после примера приложения CaveatEmptor от парней Hibernate.
Кроме того, у меня есть бизнес-уровень... кишки приложения. Он полностью не знает о какой-либо конкретной реализации DAO.
Все до этого момента кажется прекрасным, пока я не начну думать о транзакциях. Если транзакции оставлены клиенту для реализации, то как в мире я поддерживаю хорошее разделение, которое у меня происходит между моими слоями? То есть, я использую Hibernate на данный момент, и мне не очень нравится добавлять транзакции, связанные с hibernate, коду моего бизнес-уровня.
Я мог бы создать простой интерфейс транзакции с методами begin, commit и rollback и передать реализацию на свой бизнес-уровень... но... Я не уверен...
Итак, вот вызов: можете ли вы порекомендовать мне способ сделать это, не используя слово Spring (или EJB или любую другую дополнительную инфраструктуру)?