Я получаю эту ошибку
java.lang.NullPointerException в org.datanucleus.store.rdbms.query.QueryToSQLMapper.compileFromClassExpression (QueryToSQLMapper.java:1199) в org.dreanu.rdbms.query.QueryToSQLMapper.compileFrom (QueryToSQLMapper.java:436) при org.datanucleus.store.rdbms.query.QueryToSQLMapper.compile (QueryToSQLMapper.java:380) при org.datanucleus.store.rdbms.query.JPQLQuery.compileQueryFull(JPQLQuery.java:799) в org.datanucleus.store.rdbms.query.JPQLQuery.compileInternal (JPQLQuery.java:280) в org.datanucleus.store.query.Query.executeQuery (Query.java:1747 at)datanucleus.store.query.Query.executeWithMap (Query.java:1693) в org.datanucleus.api.jpa.JPAQuery.getResultList (JPAQuery.java:185) в ...........
Я пытаюсь выполнить
EntityManager mgr = null;
Cursor cursor = null;
List<StudentMark> execute = null;
try {
mgr = getEntityManager();
CriteriaBuilder cb = mgr.getCriteriaBuilder();
CriteriaQuery<StudentMark> query = cb
.createQuery(StudentMark.class);
Root<StudentMark> from = query.from(StudentMark.class);
CriteriaQuery<StudentMark> select = query.select(from);
List<Predicate> predicates = new ArrayList<Predicate>();
/* Set of Filters Use to Filter Query Results */
if (subjectId != null) {
predicates.add(cb.equal(from.join("subject").get("subjectId"),
cb.parameter(Long.class, "subjectId")));
}
if (studentRecordId != null) {
predicates.add(cb.equal(from.join("studentRecord").get("studentRecordId"),
cb.parameter(Long.class, "studentRecordId")));
}
query.select(from).where(predicates.toArray(new Predicate[] {}));
TypedQuery<StudentMark> typedQuery = mgr.createQuery(select);
/* set the parameters of the above mentioned filters */
if (subjectId != null) {
typedQuery.setParameter("subjectId", subjectId);
}
if (studentRecordId != null) {
typedQuery.setParameter("studentRecordId", studentRecordId);
}
if (limit != null) {
typedQuery.setFirstResult(0);
typedQuery.setMaxResults(limit);
}
execute = (List<StudentMark>) typedQuery.getResultList();
} finally {
mgr.close();
}
Ошибка создания, когда я пытаюсь передать 2 параметра одновременно для запроса.Если я передаю только один параметр, результат генерирует нормально.
Я использую эти jar И использую стандартный проект google app engine с облаком sql, вот мой persistance.xml
<?xml version="1.0" encoding="UTF-8" ?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0">
<persistence-unit name="Demo">
<properties>
<property name="javax.persistence.jdbc.user" value="root" />
<!-- this is required if you're connecting to a 2nd generation cloud-sql db -->
<property name="javax.persistence.jdbc.password" value="zaq123!@#" />
<property name="datanucleus.autoCreateSchema" value="true"/>
</properties>
</persistence-unit>