Mer*_*cer 2 spring hibernate jpa
我刚冬眠,所以这个问题看起来很愚蠢。
我有两个表:
应用:
@Entity
@Table
public class Application extends BaseSimpleEntity {
@Column(nullable = false)
private String appID;
@OneToOne(cascade = CascadeType.ALL)
@Searcheable
private LocalizedString name;
...
Run Code Online (Sandbox Code Playgroud)
汇编:
@Table
@Entity
public class Compilation extends BaseSimpleEntity {
@Column(nullable = false)
private String uid;
@ManyToOne
private Application application;
@Column
private DateTime creationDate;
@Column
private DateTime finishDate;
@Column
private String path;
....
Run Code Online (Sandbox Code Playgroud)
我想获得与给定应用程序匹配的编译列表。
我做了以下查询:
@Query("FROM Compilation c WHERE c.Application.id = :applicationId")
List<Compilation> findValidCompialiton(@Param("applicationId") Long applicationId);
Run Code Online (Sandbox Code Playgroud)
但这是行不通的。
错误:
引起原因:org.hibernate.QueryException:无法解析属性:应用程序:xx.xx.xx.xx.xx.Compilation [FROM xx.xx.xx.xx.xx.xx.Compilation c WHERE c.Application.id =: applicationId]位于org.hibernate.QueryException.generateQueryException(QueryException.java:137)位于org.hibernate.QueryException.wrapWithQueryString(QueryException.java:120)位于org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java :234),位于org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:158),位于org.hibernate.engine.query.spi.HQLQueryPlan。(HQLQueryPlan.java:126),位于org.hibernate.engine org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:190)的org.hibernate.internal.AbstractSessionImpl的.query.spi.HQLQueryPlan。(HQLQueryPlan.java:88)org.hibernate.internal.getHQLQueryPlan(AbstractSessionImpl.java:301)org.hibernate.internal.SessionImpl.createQuery(SessionImpl.createQuery(SessionImpl.java:1800)org.hibernate.jpa.spi处.AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl.java:328)
您的查询应为:
@Query("FROM Compilation c WHERE c.application.appID = :applicationId")
Run Code Online (Sandbox Code Playgroud)
您已经c为实体创建了别名,Hibernate尝试检查Compilation,现在您可以访问Compilation实体的属性了。现在,Compilation类中的属性为,application并且该application属性表示Application的字段appID
| 归档时间: |
|
| 查看次数: |
4096 次 |
| 最近记录: |