Java g JDOObjectNotFoundExceptions,但我可以看到对象在那里!我将发布一个带有JDO的update.FYI v2.3的图片,这意味着GAE JDO插件(datanucleus appengine jar)的v1.0。 query =
Java g JDOObjectNotFoundExceptions,但我可以看到对象在那里!我将发布一个带有JDO的update.FYI v2.3的图片,这意味着GAE JDO插件(datanucleus appengine jar)的v1.0。 query = ,java,google-app-engine,jdo,Java,Google App Engine,Jdo,g JDOObjectNotFoundExceptions,但我可以看到对象在那里!我将发布一个带有JDO的update.FYI v2.3的图片,这意味着GAE JDO插件(datanucleus appengine jar)的v1.0。 query = persistenceManager.newQuery(HuddleCreatorIndex.class, ":p.contains(creator)"); List<HuddleCreatorIndex> myCreatorInd
g JDOObjectNotFoundExceptions,但我可以看到对象在那里!我将发布一个带有JDO的update.FYI v2.3的图片,这意味着GAE JDO插件(datanucleus appengine jar)的v1.0。
query = persistenceManager.newQuery(HuddleCreatorIndex.class, ":p.contains(creator)");
List<HuddleCreatorIndex> myCreatorIndexList = (List<HuddleCreatorIndex>) query.execute(KeyFactory.createKey(Contact.class.getSimpleName(), fbUserId));
if (myCreatorIndexList.size() > 0) {
Set<Long> huddles = myCreatorIndexList.get(0).getHuddles();
//THIS FOR LOOP DID THE TRICK, why is this necessary? Never saw it in any examples
for (Long huddleKey : huddles)
alist.add(persistenceManager.newObjectIdInstance(Huddle.class, huddleKey));
Collection<Huddle> huddlesICreated = persistenceManager.getObjectsById(huddles);
allMyHuddles.addAll(huddlesICreated);
}
txn.begin();
//First, create the Huddle, this main model class
newHuddle.setInvitees(inviteeList);
newHuddle = pm.makePersistent(newHuddle);
huddleId = newHuddle.getId();
//Now create the first index
HuddleIndex newIndex = new HuddleIndex();
newIndex.setParent(KeyFactory.createKey(Huddle.class.getSimpleName(), newHuddle.getId()));
newIndex.setInvitees(inviteeList);
pm.makePersistent(newIndex);
//And finally, create the other index
Query query = pm.newQuery(HuddleCreatorIndex.class);
query.setFilter(":p.contains(creator)");
List<HuddleCreatorIndex> list = (List<HuddleCreatorIndex>) query.execute(creator.getId());
if (list != null && list.size() > 0) {
HuddleCreatorIndex thisIndex = list.get(0);
Set<Key> huddles = thisIndex.getHuddles();
huddles.add(KeyFactory.createKey(Huddle.class.getSimpleName(), newHuddle.getId()));
thisIndex.setHuddles(huddles);
} else {
HuddleCreatorIndex newCreatorIndex = new HuddleCreatorIndex();
newCreatorIndex.setCreator(creator.getId());
Set<Long> huddleSet = new HashSet<Long>(1);
huddleSet.add(newHuddle.getId());
newCreatorIndex.setHuddles(huddleSet);
pm.makePersistent(newCreatorIndex);
}
txn.commit();
@PersistenceCapable(identityType = IdentityType.APPLICATION, detachable="true")
public class Huddle {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Long id;
private Key creator;
private String name;
private Date whenTimeStamp;
private Date creationTimeStamp;
private String userIdType;
private Set<Key> invitees;
private String status;
private Set<Key> choices;
private List<Vote> votes;
//setters, getters, and constructor omitted
}
@PersistenceCapable(identityType = IdentityType.APPLICATION, detachable="true")
public class HuddleCreatorIndex {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key id;
private Key creator;
private Set<Long> huddles;
//setters, getters, and constructor omitted
}