Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java jpa标准是否有效取决于db是mysql还是objectdb_Java_Jpa_Criteria Api_Objectdb - Fatal编程技术网

Java jpa标准是否有效取决于db是mysql还是objectdb

Java jpa标准是否有效取决于db是mysql还是objectdb,java,jpa,criteria-api,objectdb,Java,Jpa,Criteria Api,Objectdb,当我将JPA与MySQL一起使用时,下面的查询工作正常。但是当我将它与ObjectDB一起使用时,它会抛出下面的异常 public Friendship getFriendship(String username) { CriteriaBuilder criteriaBuilder = em.getCriteriaBuilder(); CriteriaQuery<Friendship> query = criteriaBuilder.createQuery(Frien

当我将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();
}
如上所述(如错误消息所示),缺少选择

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


一些JPA实现通过支持无选择的查询来扩展标准JPQL。

这是EclipseLink。但是我认为JPA,即java接口,应该是实现盲的?实现是否重要?更正:对于我使用的
com.objectdb.jpa.Provider
版本。对于
MySQL
版本,我使用的是
org.eclipse.persistence.jpa.PersistenceProvider
。显然,它们都是
EclipseLink
执行查询之前。有一个
criteriaBuilder。选择case(root)选项。但是当我加上它的时候,没有什么区别。哎呀,我的错。添加查询。选择(根);我想是吧。
 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)