Кажется, что критерии jpa работают (или нет), в зависимости от того, является ли db mysql или objectdb

Когда я использую JPA с MySQL, приведенный ниже запрос работает нормально. Но когда я использую его с ObjectDB, он выдает исключение ниже.

public Friendship getFriendship(String username) {
    CriteriaBuilder criteriaBuilder = em.getCriteriaBuilder();
    CriteriaQuery<Friendship> query = criteriaBuilder.createQuery(Friendship.class);
    Root<Friendship> root = query.from(Friendship.class); 
    Path<String> path = root.<String>get("username");
    query.where(criteriaBuilder.equal(path, username));
    return em.createQuery(query).getSingleResult();
}

Ошибка из браузера

 type Exception report

message

descriptionThe server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: com.objectdb.o._PersistenceException: Unexpected query token 'FROM' (SELECT is expected)
root cause

com.objectdb.o._PersistenceException: Unexpected query token 'FROM' (SELECT is expected)
root cause

com.objectdb.o.UserException: Unexpected query token 'FROM' (SELECT is expected)

1 ответ

Как правильно отмечено выше (и как показано в сообщении об ошибке) - выбор отсутствует.

Допустимый запрос JPQL должен включать SELECT, в противном случае запрос является неполным.

Некоторые реализации JPA расширяют стандарт JPQL, поддерживая запросы без SELECT.

Другие вопросы по тегам