junitテストを実行するとこのエラーが発生します
Testcase: testGet_User(Authentication.UserManagerTest): Caused an ERROR
null
java.lang.NullPointerException
at org.datanucleus.store.appengine.query.DatastoreQuery.getMappingForFieldWithName(DatastoreQuery.java:1307)
at org.datanucleus.store.appengine.query.DatastoreQuery.addLeftPrimaryExpression(DatastoreQuery.java:1107)
at org.datanucleus.store.appengine.query.DatastoreQuery.addExpression(DatastoreQuery.java:871)
at org.datanucleus.store.appengine.query.DatastoreQuery.addFilters(DatastoreQuery.java:832)
at org.datanucleus.store.appengine.query.DatastoreQuery.performExecute(DatastoreQuery.java:230)
at org.datanucleus.store.appengine.query.JDOQLQuery.performExecute(JDOQLQuery.java:89)
at org.datanucleus.store.query.Query.executeQuery(Query.java:1489)
at org.datanucleus.store.query.Query.executeWithArray(Query.java:1371)
at org.datanucleus.jdo.JDOQuery.execute(JDOQuery.java:243)
at Authentication.UserManager.get(UserManager.java:86)
at Authentication.UserManagerTest.testGet_User(UserManagerTest.java:110)
getのコードは次のとおりです。
public static UserBean get(User user) {
PersistenceManager pm = PMF.get();
// get user with id
Query query = pm.newQuery(UserCommon.class);
query.setFilter("id == idParam");
query.declareParameters("String idParam");
System.out.println("\t\tID:" + user.getUserId());
List<UserCommon> userDatas = (List<UserCommon>) query.execute(user.getUserId());
私が見える永続的なクラスがあるところ:
@PersistenceCapable(detachable="true")
@Inheritance(strategy = InheritanceStrategy.SUBCLASS_TABLE)
public abstract class UserCommon {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key key;
@Persistent
private String id;
と
@PersistenceCapable(detachable="true")
public class Professor extends UserCommon {
と
@PersistenceCapable(detachable="true")
public class Student extends UserCommon {
基本的には2種類のユーザーが欲しいです。しかし、ログインしている間、私が持っている情報は彼らのIDだけです。したがって、私は教授や学生ではなく、基本クラスでクエリを実行しようとしていました。ただし、NullPointerExceptionが発生しました。
私が間違えた場所への提案はありますか?
前もって感謝します !