2015-12-24 6 views
0

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

userService.save(user); //this one runs just fine 
    selectedRestaurant.getEmployees().add(user); 
    restaurantService.save(selectedRestaurant); //exception 

Отношение между двумя является @OneToMany. Аннотации транзакций не используются. Я думал, что первый открывает транзакцию и закрывает ее, а второй делает то же самое. Но после попытки сохранить ресторан я получаю это:

[[ACTIVE] ExecuteThread: '5' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.engine.jdbc.internal.LogicalConnectionImpl - Obtaining JDBC connection 
[[ACTIVE] ExecuteThread: '5' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.engine.jdbc.internal.LogicalConnectionImpl - Obtained JDBC connection 
[[ACTIVE] ExecuteThread: '5' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl - Skipping aggressive release due to registered resources 
[[ACTIVE] ExecuteThread: '5' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.jpa.spi.AbstractEntityManagerImpl - Mark transaction for rollback 
[[ACTIVE] ExecuteThread: '5' for queue: 'weblogic.kernel.Default (self-tuning)'] INFO org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl - HHH000106: Forcing container resource cleanup on transaction completion 
[[ACTIVE] ExecuteThread: '5' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.engine.jdbc.spi.SqlExceptionHelper - could not log warnings 
java.sql.SQLException: Statement has already been closed 

Почему это откат?

Я пытаюсь использовать данные весны jpa (1.9.2.RELEASE), weblogic 12c, mysql 5.6.17. Если в weblogic включена функция Emulate Two-Phase Commit.

Не могли бы вы дать мне советы, как это сделать должным образом?

+0

Вы можете сделать свой уровень журналов информацией и опубликовать дополнительную информацию о журнале. вероятно, должно быть исключение. публикуйте журналы вокруг исключения. –

ответ

1

Идентификатор пользователя сгенерирован автоматически. Метод сохранения не может установить соединение между объектом и dto без id.