2016-09-07 4 views
0

Я пытаюсь использовать JPA (@CrudRepository), но я хочу создать также свой пользовательский контроллер с Mybatis.Mybatis с JPA в SpringBoot

У меня это работает, но проблема в том, что, например, в процедурах они не работают вместе.

Возможно ли реализовать JPA с Mybatis для совместной работы?

Я читал много, я понимаю, что Mybatis не ORM. Некоторые блоги указывают, что это возможно, но не так.

ответ

1

Можно управлять как JPA, так и mybatis вместе с пружинной транзакцией. Оба они, по сути, могут откатываться вместе в рамках одной транзакции. Однако обратите внимание на побочные эффекты, такие как:

например.

В рамках той же сделки:

// Perform insert and expect id to be returned 
TableA tableA = new TableA(); 
jpaRepositoryForTableA.save(tableA); 

// Use the tableA in the next mybatis mapper 
TableB tableB = new TableB(); 
tableB.setTableAId(tableA.getId()); 

this.mapper.saveTableB(tableB) 

В приведенном выше сценарии, TableB не сможет получить идентификатор TABLEA в.

0

Я не думаю, что это хорошая идея. Используйте один или другой.

Я могу себе представить, что вы можете заставить его работать, но вы не можете использовать их поверх одних и тех же таблиц или использовать управление транзакциями для обеих структур сохранения.

Итак, если у вас есть такой вариант использования (вы не объяснили), я бы сказал, что ваше приложение должно быть разделено на две отдельные службы. При желании можно отделить ваше хранилище от двух отдельных экземпляров DB.

+0

Я хочу использовать их для транзакций. Вариант использования может быть, например, транзакцией банковского счета. Я хочу сделать все транзакции с Mybatis, кроме CRUD, что это должно быть сделано с JPA:/ –

+0

Вы не наметили свой вариант использования, поэтому я бы сказал, что в большинстве случаев вам следует стремиться избежать этого. Если вы действительно не можете бояться, вам нужно будет использовать распределенные транзакции (https://en.wikipedia.org/wiki/Distributed_transaction). Но это убьет вашу работу. – luboskrnac

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