Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.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获取连接查询_Java_Jpa_Jpa 2.0_Jpql - Fatal编程技术网

Java jpa获取连接查询

Java jpa获取连接查询,java,jpa,jpa-2.0,jpql,Java,Jpa,Jpa 2.0,Jpql,这就是我的域名的外观: public class Template implements Serializable { private static final long serialVersionUID = 1L; @OneToOne(cascade=CascadeType.ALL) private FieldConfig fieldConfig; } public class FieldConfig implements Serializable {

这就是我的域名的外观:

public class Template implements Serializable {
    private static final long serialVersionUID = 1L;    
    @OneToOne(cascade=CascadeType.ALL)
    private FieldConfig fieldConfig;
}

public class FieldConfig implements Serializable {
    private static final long serialVersionUID = 1L;

    @OneToMany(cascade= CascadeType.PERSIST)
    @JoinColumn(name = "fieldConfigId")
    private Set<Field> fieldSet;
}

创建这样的查询有什么想法吗?

您不能在JPQL中的连接获取中使用别名,规范不允许这样做

EclipseLink允许通过查询提示进行嵌套联接获取

"eclipselink.join-fetch"="t.fieldConfig.fieldSet"

@Template
@FieldConfig
是否在描述符中注释为实体或配置为实体?当然,为了可读性,我没有包括这些:)我认为查询是正确的。你的JPA引擎是什么?您是否尝试过使用AS-fconfig来查看它是否有所不同?我正在使用EclipseLink,尝试添加AS-got=>Exception Description:语法错误解析查询[SELECT t from Template t LEFT JOIN FETCH t.fieldConfig AS fconfig LEFT JOIN FETCH fconfig.fieldSet where t.id=:id],第1行,第55列:意外标记[AS]。请参阅TypedQuery query=em.createQuery(“从模板t中选择t加入获取t.fieldConfig”+“加入获取t.theme”+“加入获取t.dataConfig”+“加入t.fieldConfig.fieldSet fs”+“加入t.dataConfig.textSet,其中t.id=:id”,Template.class);query.setParameter(“id”,id);setHint(QueryHints.FETCH,“t.fieldConfig.fieldSet”);setHint(QueryHints.FETCH,“t.dataConfig.textSet”);返回query.getSingleResult();
Internal Exception: NoViableAltException(80@[()* loopback of 477:9: (node= join )*])
Exception Description: Syntax error parsing the query [SELECT t from Template t LEFT JOIN FETCH t.fieldConfig fconfig LEFT JOIN FETCH fconfig.fieldSet where t.id = :id], line 1, column 55: unexpected token [fconfig].
"eclipselink.join-fetch"="t.fieldConfig.fieldSet"