Weblogic 12c с базой данных Oracle 18c: setTransactionOnly () вызывается при ошибке транзакции - PullRequest
0 голосов
/ 28 апреля 2019

У меня есть корпоративное приложение с несколькими объектами JPA 2.1.Я достигаю базы данных через зарегистрированный источник данных JNDI от WebLogic.Реализация JPA - Hibernate 5.2.17.Я использую Spring Data JPA для облегчения доступа к базе данных.

Рассматриваемая сущность:

public class PermissionEntity implements Serializable {
    private static final long serialVersionUID = -3862680194592486778L;

    @Id
    @GeneratedValue
    private Long id;

    @Column(unique = true)
    private String permission;

    @ManyToMany
    private List<RoleEntity> roles;
}

Когда я пытаюсь вставить новую сущность, я получаю следующее исключение изWebLogic: weblogic.transaction.internal.AppSetRollbackOnlyException: setRollbackOnly called on transaction.

Эта ошибка не возникает с другими объектами.Ни в этом, ни в других EAR, хотя в теории все конфигурации одинаковы.

1 Ответ

1 голос
/ 05 мая 2019

Это может быть нарушение ограничения или что-то еще.Чтобы понять проблему, установите следующий флаг в параметрах запуска управляемого сервера:

-Dweblogic.transaction.allowOverrideSetRollbackReason=true

Таким образом, вы должны получить стек ошибок с более подробной информацией о сбое транзакции контейнера.

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