首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >交易问题

交易问题
EN

Stack Overflow用户
提问于 2015-12-24 20:28:52
回答 1查看 125关注 0票数 0

我想要做的是保存一个用户,然后保存一个餐厅实体。我以为这会很容易,但似乎我没能理解什么。

代码语言:javascript
复制
    userService.save(user); //this one runs just fine
    selectedRestaurant.getEmployees().add(user);
    restaurantService.save(selectedRestaurant); //exception

两者之间的关系是@OneToMany。不使用事务注释。我认为第一个交易也会打开并关闭,而第二个交易也会这样做。但在试图拯救餐厅之后我明白了:

代码语言:javascript
复制
    [[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

为什么这回滚?

我正在尝试使用spring (1.9.2.RELEASE)、weblogic 12c、MySQL5.6.17。如果相关模拟,则在weblogic中启用两阶段提交。

你能告诉我如何正确地做这件事吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-24 23:52:03

用户id是自动生成的。保存方法无法在没有id的情况下在实体和dto之间建立连接。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34457644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档