2011-02-03 3 views
0

Goodmorning все,Container Managed транзакции с СДО/DataNucleus

Я в настоящее время играет с DataNucleus/JDO. Одна вещь, которая мне нравится, - это система безопасных запросов типа, и я хочу использовать Datanucleus в будущих проектах (я исхожу из Hibernate-фона). Я хочу, чтобы контейнер (JBOSS 5) управлял транзакцией, и я определил источник данных, следуя инструкциям пользователя datanucleus (datanucleus forum thread), единственная проблема заключается в том, что я не могу понять, как получить JDOPersistenceManager, все, что я получаю из поиска jndi является PersistenceManager, если я попробую придать JDOPersistenceManager, я получу ClassCastException. Мне нужен JDOPersistenceManager, чтобы получить запрос типа ... Моя конфигурация такая же, как в пояснении.

С кем-то сталкивалась такая же проблема раньше? И я тоже блуждаю, если бы эта штука была бы возможна вообще ...

Благодарим за ответы!

+0

Если вы получите PM, то вы легко можете, дайте нам знать, что это полное имя класса этого вечера. Это говорит вам, что вы можете отдать его – DataNucleus

+0

Экземпляр, который я получаю из поиска jndi, является экземпляром класса org.datanucleus.jdo.connector.PersistenceManagerImpl. Думаю, мне нужен экземпляр JDOPersistenceManager, возможно, мне нужно указать его где-нибудь в конфигурации источника данных? – Andrea

ответ

1

Никогда не было времени, чтобы попробовать его под JCA так не очевидно, точка доступа для получения, лежащей в основе JDOPersistenceManager ... однако, не попробовать что-то вроде этого

JDOPersistenceManager jdopm = 
    ((JDOTransaction)pm.getCurrentTransaction()).getPersistenceManager(); 

и если это сработает, то у вас есть обходной путь, пока мы обеспечить аксессор в классе org.datanucleus.jdo.connector.PersistenceManagerImpl для JDOPersistenceManager

+0

Спасибо за ваш ответ! Теперь он работает так, как ожидалось. Прощай – Andrea

Смежные вопросы