2017-02-22 61 views
0

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

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

Я попытался использовать транзакции, управляемые контейнером, и транзакции, управляемые Bean. В этой заметке, похоже, что только файл 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 активируется в соответствии с журналами.

Любые идеи?

ответ

0

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

Теперь я могу сохранить объекты.