从3开始升级到Spring 4时,我们遇到了一个问题。我们已经做了一些测试,但还没有得出明确的结论。基本上我们所看到的是,我们看起来像这样的代码并不能保存新创建的实体。这个代码在升级到Spring 4之前一直有效。看起来很基本,我们必须遗漏一些东西,但到目前为止我们还没弄清楚为什么我们现在需要添加额外的@Transactional。
@Transactional
SomeWebSerivce
{
someAutowiredDomainService.doStuff();
}
@Service
SomeAutowiredDomainService
{
doStuff(){
Foo foo = getAttachedEntityFoo();
foo.createChildEntityBarAndAttachToFooThroughOneToOneMapping(); //<-- this is not persisted to the DB, but if we mark SomeAutowiredDomainService with @Transactional everything works correctly.
}
}