|
|
|
Можно ли использовать EntityManager в обычном java-классе?
|
|||
|---|---|---|---|
|
#18+
Вопрос вот в чём: Создали Некое описание модели в обычном java-классе; описали фабрики, которые работают с объектами и скрывают реализацию... Хочется сделать что-то типа em.persist(); Вот код: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Вот на строчке em.persist(SluchError2); возникает исключение. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. Если этот код перенести в EJB-модуль, то там всё прекрасненько работает. Вот Persistence.xml: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. transaction-type="JTA" выставил так, потому что с transaction-type="RESOURCE_LOCAL" не deploy'елось. Смысл: Подключаю обычный java класс, в котором описаны фабрики, к EJB-модулю, как библиотеку, и из EJB-модуля хочу вызвать метод из этой библиотеки, а в результате хочу получить запись в БД, посредством вызова em.persist(), но вылазиет вышеописанное исключение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2012, 09:21:33 |
|
||
|
Можно ли использовать EntityManager в обычном java-классе?
|
|||
|---|---|---|---|
|
#18+
Niky4000Можно ли использовать EntityManager в обычном java-классе?можно Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2012, 12:05:42 |
|
||
|
Можно ли использовать EntityManager в обычном java-классе?
|
|||
|---|---|---|---|
|
#18+
grasoff.net Спасибо, но по-моему это что-то из серии "как вызвать метод session bean'а из обычного java-класса". Наверное, более правильно засунуть все вызовы em.persist() и всё что с ними связано в EJB-модуль. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2012, 13:41:37 |
|
||
|
Можно ли использовать EntityManager в обычном java-классе?
|
|||
|---|---|---|---|
|
#18+
херасе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2012, 15:45:24 |
|
||
|
Можно ли использовать EntityManager в обычном java-классе?
|
|||
|---|---|---|---|
|
#18+
Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2012, 15:49:09 |
|
||
|
Можно ли использовать EntityManager в обычном java-классе?
|
|||
|---|---|---|---|
|
#18+
В EJB всё работает. Наверное, и не стоит заморачиваться - просто делать работу с em в StatelessBean и всё. А static или нет - какая разница? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2012, 16:37:44 |
|
||
|
Можно ли использовать EntityManager в обычном java-классе?
|
|||
|---|---|---|---|
|
#18+
Niky4000Наверное, и не стоит заморачиваться - просто делать работу с em в StatelessBean и всё. Stateless/Statefull bean самое правильное, иначе тебе придется еще управлять транзакциями в ручную. Niky4000А static или нет - какая разница?EntityManager потоко-небезопастный объект и если все будут использовать один и тот же экземпляр, то возможны проблемы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2012, 16:42:04 |
|
||
|
Можно ли использовать EntityManager в обычном java-классе?
|
|||
|---|---|---|---|
|
#18+
авторEntityManager потоко-небезопастный объект и если все будут использовать один и тот же экземпляр, то возможны проблемы. То есть EntityManager обязан быть не static, чтобы проблем с транзакциями в СУБД не было? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2012, 15:38:00 |
|
||
|
Можно ли использовать EntityManager в обычном java-классе?
|
|||
|---|---|---|---|
|
#18+
Niky4000То есть EntityManager обязан быть не static, чтобы проблем с транзакциями в СУБД не было? То что он будет не static ещё не гарантирует что несколько потоков к нему не смогут обратиться. В stateless session bean, например, параллельным потокам выдаются разные инстансы. Экземпляр EntityManager, обычно, связан с транзакцией. В JEE этим контейнер занимается. Вне JEE это уже ваша личная ответственность, как создавать, когда закрывать. Хоть ThreadLocal, хоть явно. Мы же не знаем что у вас за клиентская часть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2012, 15:42:01 |
|
||
|
Можно ли использовать EntityManager в обычном java-классе?
|
|||
|---|---|---|---|
|
#18+
Niky4000, EntityManager можно использовать в разных средах. Для container-managed em многое делается контейнером: потокобезопасность, управление транзакциями. В application-managed em многое приходится делать самому. Последовательность будет примерно такая: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2012, 19:03:33 |
|
||
|
Можно ли использовать EntityManager в обычном java-классе?
|
|||
|---|---|---|---|
|
#18+
Клиентская часть у меня GUI клиент, типа Enterprise Application. Он пакуется вместе с EJB-модулем в EAR и разворачивается на GlassFish. А я не совсем понял в каком случае EntityManager у меня управляется клиентом, а в каком контейнером? Как узнать это? Кем управляется EntityManager? А если, допустим, у меня container-managed EntityManager, то примерно так: Код: sql 1. 2. 3. Можно ли в случае container-managed EntityManager вообще без транзакций обойтись - типа и так всё commit'тится? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2012, 11:12:52 |
|
||
|
Можно ли использовать EntityManager в обычном java-классе?
|
|||
|---|---|---|---|
|
#18+
Niky4000Можно ли в случае container-managed EntityManager вообще без транзакций обойтись - типа и так всё commit'тится?да ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2012, 11:17:28 |
|
||
|
Можно ли использовать EntityManager в обычном java-классе?
|
|||
|---|---|---|---|
|
#18+
А как узнать кем управляется EntityManager: контейнером или приложением? Мне кажется, что если я разворачиваю EAR на сервере приложений, то EntityManager должен управляться контейнером. Тогда я не могу представить ситуацию когда бы он управлялся приложением. В каком случае это может быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2012, 11:40:03 |
|
||
|
Можно ли использовать EntityManager в обычном java-классе?
|
|||
|---|---|---|---|
|
#18+
Niky4000А как узнать кем управляется EntityManager: контейнером или приложением? Мне кажется, что если я разворачиваю EAR на сервере приложений, то EntityManager должен управляться контейнером. Тогда я не могу представить ситуацию когда бы он управлялся приложением. В каком случае это может быть? Если ты получаешь ссылку на EntityManager в Stataless\Statefull бине с помошью dependency injection то это container-managed. Получение EntityManager с помощью EntityManagerFactory это application-managed. Как обстоят дела с английским? А вообще как бы дела не обстояли, самый легкий способ во всем разобраться это прочитать спецификацию. У JPA 1.0 спецификация небольшая всего-то 250 страниц. Если же с английским большие проблемы, то тем более нужно начитать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2012, 16:52:49 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=37768705&tid=2131900]: |
0ms |
get settings: |
11ms |
get forum list: |
23ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
49ms |
get topic data: |
14ms |
get forum data: |
4ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
| others: | 320ms |
| total: | 491ms |

| 0 / 0 |
