是這個樣子我有域對象:查詢不相同的交易,即可找到持久對象
@PersistenceCapable(detachable="true")
public class UserData implements java.io.Serializable
{
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Long id;
@Persistent
@NotNull
private String openId;
public UserData(String openId)
{
this.openId = openId;
}
}
現在我創建的UserData對象並使用使其持久JDO:
UserData userData = ThreadLocalPMF.getPersistenceManager().makePersistent(new UserData(openId));
稍後在代碼中,我使用相同的PersistenceManager,同一線程在相同的仍處於打開狀態的事務中執行查詢:
Query query = ThreadLocalPMF.getPersistenceManager().newQuery(UserData.class, "openId == :openId");
query.setUnique(true);
UserData userData = (UserData)query.execute(openId);
現在它發生了一次,查詢確實返回null,而不是先前持久化了一些代碼行的對象。這裏有什麼問題?這是一致性問題嗎?該應用程序是使用高複製數據存儲與
<property name="datanucleus.appengine.datastoreEnableXGTransactions" value="true"/>