Wildfly - deltaspike - транзакция не совершена?

Я использую Wildfly 10 вместе с Deltaspike и у меня возникают проблемы с сохранением сущности. Проблема возникает позже, когда я пытаюсь обновить ее или сохранить другую сущность, ссылающуюся на нее. Когда я пытаюсь обновить его, я получаю исключение, указывающее, что сущность не управляется. Если я попытаюсь сохранить другую сущность, ссылающуюся на нее, то получу исключение, указывающее, что сущность находится в переходном состоянии.

Я использую JTA, и объект должен был быть зафиксирован ранее, поскольку он был сохранен в другом вызове метода.

Я пытался использовать управляемые контейнером транзакции и управляемые бином транзакции. На этой ноте, похоже, что только файл apache-deltaspike.properties имеет какое-либо влияние на это изменение. Я также вручную включил перехватчик транзакций, но я не верю, что это имеет значение, потому что он включен с или без явной активации его в beans.xml. Похоже, аннотация @Transactional фактически не фиксирует транзакцию (я тестировал ее с использованием различных аргументов, и я ожидал бы другого исключения, но просто использовал бы то же самое).

@Transactional(Transactional.TxType.REQUIRES_NEW)
//@Transactional(Transactional.TxType.NEVER)
@Loggable
protected void startSession() {
    entity = new Entity("something");
    LOGGER.warn("entity:" + entity);
    entityRepository.saveAndFlushAndRefresh(entity);

    LOGGER.warn("end - entity:" + entity.getId());
}

Операторы журнала показывают, что идентификатор равен 0, не установлен. Теперь, если я запрашиваю последовательность, я вижу, что это 189 от того, что меня ударили так много раз...

Фактическое исключение, когда я пытаюсь сделать:

entityRepository.refresh(entity);

Именно тогда я получаю исключение, указывающее, что сущность не управляется. Как я указал, я вижу, что Transaction Interceptor активируется в соответствии с журналами.

Есть идеи?

1 ответ

Решение

Кажется, проблема в более новых версиях hibernate, вы не можете использовать примитивный тип для полей id / version.

Теперь я могу сохранять сущности.

Другие вопросы по тегам