不得不再次打擾你......(見:CMT Transactions)假定如下:CMT交易(REDUX)
所有TransactionAttributes每默認設置爲REQUIRED
問題:爲什麼是find方法能夠檢索foo,即使前一個提交不應該發生?確實發生了調用find()Foo被插入和選擇的情況,但爲什麼?由於Bar仍然需要存儲,交易目前還沒有結束。
下面的配置已經發生(邦= DuplicateKeyException):
問:爲什麼富保存?我想保存(富富)的方法調用將成爲GlobalService交易的一部分,註釋爲REQUIRED
OK,也許GlobalClient感興趣:Foo-的
public void createFooBar(Foo foo, Bar bar) throws WrappedThingsGoneBadException
{
try
{
fooService.create(foo);
}
catch (Exception e)
{
e.printStackTrace();
}
fooService.doSomethingSilly();
try
{
foo = fooService.findByName(foo.getName());
}
catch (Exception e)
{
e.printStackTrace();
}
try
{
barService.create(bar);
}
catch (Exception e)
{
e.printStackTrace();
}
}
保存方法和酒吧服務:
public Foo create(Foo foo)
{
em.persist(foo);
return foo;
}
說明非常歡迎!
你看到保存美孚在你的數據庫? –
「em」是一個javax.persistence.EntityManager,不是嗎? –