这是怎么了我的域名看起来:JPA获取连接查询
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;
}
我要实现的,如果我加载从自动fieldConfig加载数据库和fieldconfig的字段集的模板。
我目前的JPQL:
TypedQuery<Template> query = em.createQuery("SELECT t from Template t LEFT JOIN FETCH t.fieldConfig"
+ " fconfig LEFT JOIN FETCH fconfig.fieldSet where t.id = :id", Template.class);
我的例外:
Internal Exception: NoViableAltException([email protected][()* 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].
创造这样的查询有什么想法?
是'@ Template'和'@ FieldConfig'标注为实体或描述符中的配置呢? –
是当然,我没有包括可读性:) –
该查询看起来对我来说是正确的。你的JPA引擎是什么?你有没有尝试使用AS fconfig来查看它是否有所作为? –