0

私は次のクラスを持っています:

@PersistenceCapable
public class User implements Serializable {

@PrimaryKey
private long userId;

@Persistent(defaultFetchGroup = "true")
private Set<String> deviceIds;

@Persistent(defaultFetchGroup = "true")
private long schoolClass;

@Persistent(defaultFetchGroup = "true")
private Set<Long> subjects;
}

contains を使用してクエリを実行すると、常に空のリストが表示されます

PersistenceManager pm = PMF.get().getPersistenceManager();
Query q = pm.newQuery(User.class);
q.setFilter("subjects.contains(subject)");
List<User> userList = (List<User>) q.execute(Arrays.asList(new Long(13)));
q.closeAll();

私は何を間違っていますか?データストアには、サブジェクト セットに long 値 13 を持つ 2 人のユーザーがいます。したがって、クエリは 2 つの結果を返す必要があります。

このクエリをデバッグすると、q.execute() の直後に userList をクリックすると InvocationException が発生することがわかります。

4

0 に答える 0