0

当我将 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)
4

1 回答 1

0

如上所述正确(并且如错误消息所示) - 缺少选择。

有效的 JPQL 查询必须包含 SELECT,否则查询不完整。

一些 JPA 实现通过支持不带 SELECT 的查询来扩展标准 JPQL。

于 2012-10-04T12:36:18.247 回答