sideB1.setName("yar");
beginTxn();
em.persist(sideB1);
commitTxn();
HasOneToOneWithKey withKey = new HasOneToOneWithKey();
withKey.setOther(KeyFactory.createKey("UnownedUpgradeJPA$SideB", sideB1.getId()));
beginTxn();
em.persist(withKey);
commitTxn();
beginTxn();
assertNotNull(em.find(HasOneToOneWithKey.class, withKey.getId()).getOther());
commitTxn();
Map<String, String> props = Utils.newHashMap();
props.put("datanucleus.appengine.datastoreEnableXGTransactions", Boolean.TRUE.toString());
props.put("datanucleus.appengine.storageVersion", StorageVersion.PARENTS_DO_NOT_REFER_TO_CHILDREN.name());
switchDatasource(EntityManagerFactoryName.originalStorageVersion, props);
// Now read it back as an unowned relationship
beginTxn();
HasOneToOneWithUnowned withUnowned = em.find(HasOneToOneWithUnowned.class, withKey.getId());
assertNotNull(withUnowned.getOther());
assertEquals(sideB1.getId(), withUnowned.getOther().getId());
commitTxn();
}