используя toplink из hibernate - PullRequest
       18

используя toplink из hibernate

0 голосов
/ 28 октября 2009

Я использую Hibernate, но я хочу добавить приложение, которое использует Hibernate. проблема, с которой я сталкиваюсь, - это когда я хочу выполнить глобальную транзакцию в этом комбинированном приложении. я использую weblogic в качестве контейнера, теперь проблема в том, что hibernate создал свое собственное соединение, я хочу, чтобы toplink использовал только это соединение ... может кто-нибудь сказать мне, как мне этого добиться ?????

Ответы [ 2 ]

1 голос
/ 28 октября 2009

Я бы предложил разделить миры Hibernate и TopLink и использовать один компонент EJB Session для Hibernate и другой компонент EJB Session для TopLink.

Используйте транзакции, управляемые контейнером, и пусть сервер WebLogic позаботится о фиксации для обоих вызовов сессионных компонентов. Вам может понадобиться один источник данных + пул соединений для работы TopLink и другой источник данных + пул соединений для работы Hibernate.

Таким образом, вы получите правильное архитектурное разделение между двумя технологиями ORM. Я подозреваю, что попытка использовать то же соединение из работы TopLink и передача его в Hibernate (или наоборот) не будет работать, потому что, как только один инструмент вызвал commit, другой инструмент не сможет вызвать rollback: -)

Если вы делаете что-то на уровне EJB, это будет проще, чем копаться в JTA напрямую. Контейнер должен позаботиться о JTA для вас.

0 голосов
/ 28 октября 2009

Вас беспокоит несколько соединений или объединение транзакций? Если вы хотите, чтобы ваш код верхней ссылки и код спящего режима совместно использовали транзакции, вам, вероятно, придется взглянуть на JTA, чтобы объединить их в распределенную транзакцию. В противном случае мне неясно, чего вы пытаетесь достичь

...