【发布时间】:2017-06-10 20:02:22
【问题描述】:
我有一个 App Engine 端点,它必须在修改某些实体字段并返回响应之前调用 detach()。但是每次我看到下面的日志充斥着我的开发者控制台日志。我怎样才能抑制这个讨厌和不必要的警告?
org.datanucleus.ObjectManagerImpl detachObject: Object ... was detached before its changes could be flushed. Changes will not reach the datastore. This is likely the result of a JPA detach() call before flush(), which is a stupid thing to do anyway, but it was your choice.
【问题讨论】:
-
@LewBloch :但这根本不是一件愚蠢的事情!我不想修改数据存储上的实体,但我需要在发送响应之前修改一个字段。我只需要禁用该警告。
-
如果你想“在发送响应之前修改一个字段”然后你 DETACH 未修改的对象然后更改字段(在分离的对象中)!
-
@NeilStockton :嗯,我也需要更改实体。所以我在调用 detach() 之前先这样做: EntityTransaction transaction = mgr.getTransaction();交易.开始(); mgr.persist(票);事务.commit(); mgr.refresh(票);但显然实体在分离时仍未正确刷新。
-
它在提交时被刷新。日志会告诉你这个
标签: java google-app-engine jpa logging google-cloud-endpoints