Использование JPA и Spark вместе с Spring-boot. Странное поведение с EntityManager и EntityManagerFactory - PullRequest
0 голосов
/ 07 января 2019

Я хотел бы продолжить использовать DAO, которую я создал, под Spring-boot 2.1.1 (с сущностями и JPA), в то время как я также использую Spark 2.4.0.

Если я выполню RDD, соберу некоторые из его результатов и перейду к методу службы, оканчивающемуся в моем DAO, все в порядке. Мои записи хорошо написаны. Но это не ненормально: я делаю мой звонок в простой среде Spring-boot. Тем не менее, если я попытаюсь сделать это в середине операции RDD, это не удастся. Например, я пытаюсь сделать это:

myRDD.groupByKey(..).forEach(candidate -> myDAO.save(candidate));

Если в моем DAO используется @Autowired EntityManager, базовый класс с именем SharedEntityManagerCreator завершается неудачно с нечетным сообщением о том, что AdviceBeanName не был установлен, когда вызывается сервисный метод, содержащий аннотацию @Transaction (тот, который будет вызывать мой ДАО).

Если мой DAO использует @Autowired EntityFactoryManager, он должен сам управлять транзакцией с помощью EntityManager, созданного из него. Иначе, функция persist жалуется на отсутствие транзакции. Однако, если кажется, что все работает хорошо, в конечном итоге ничего не фиксируется, и мои таблицы остаются пустыми.

Есть ли несколько советов, которые нужно знать, прежде чем пытаться использовать JPA с Spark?
Или я обречен на неудачу, потому что при выполнении операций RDD Spark переводит систему в состояние, в котором среда Spring больше не имеет константы?

С уважением,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...