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);

Это когда я получаю исключение, указывающее, что объект не управляется. Как я указал, я вижу, что перехватчик транзакций активирован в соответствии с журналами.

Любые идеи?


person Walter    schedule 22.02.2017    source источник


Ответы (1)


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

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

person Walter    schedule 22.02.2017