JPA:处理视图
JPA: dealing with Views
我正在尝试实现一个存储库以使用视图。事实上,我正在尝试使用 SimpleJpaRepository 实现,但我在执行时遇到了很多错误,因为我的 DTO 不是 @Entity。只是一个@Table,而且这种元素好像没有映射到JPA的Metamodel中。
这是我的 DTO:
@Table(name = "v_language")
public class VLanguage {
@Column(name = "isocode")
private String isocode;
@Column(name = "name")
private String name;
@Column(name = "isdefault")
private String isdefault;
// getters and setters
...
}
我试图用相同的 SimpleJpaRepository 实现定义一个功能最少的自定义基础存储库(只有一个 findAll() 方法),但是在构建查询时它在执行以下操作时失败了:
Root<U> root = query.from(domainClass);
除了这个例外:
Caused by: java.lang.IllegalArgumentException: Not an entity: class es.prodevelop.pui.common.jpa.model.views.dto.VLanguage
at org.hibernate.jpa.internal.metamodel.MetamodelImpl.entity(MetamodelImpl.java:194)
at org.hibernate.jpa.criteria.QueryStructure.from(QueryStructure.java:124)
at org.hibernate.jpa.criteria.CriteriaQueryImpl.from(CriteriaQueryImpl.java:156)
at es.prodevelop.pui.common.jpa.configuration.AbstractRepository.applySpecificationToCriteria(AbstractRepository.java:213)
at es.prodevelop.pui.common.jpa.configuration.AbstractRepository.getQuery(AbstractRepository.java:174)
at es.prodevelop.pui.common.jpa.configuration.AbstractRepository.findAll(AbstractRepository.java:151)
...
有人知道怎么解决吗?
您缺少 @Entity
注释。
请注释您的 class 并重试。
我正在尝试实现一个存储库以使用视图。事实上,我正在尝试使用 SimpleJpaRepository 实现,但我在执行时遇到了很多错误,因为我的 DTO 不是 @Entity。只是一个@Table,而且这种元素好像没有映射到JPA的Metamodel中。
这是我的 DTO:
@Table(name = "v_language")
public class VLanguage {
@Column(name = "isocode")
private String isocode;
@Column(name = "name")
private String name;
@Column(name = "isdefault")
private String isdefault;
// getters and setters
...
}
我试图用相同的 SimpleJpaRepository 实现定义一个功能最少的自定义基础存储库(只有一个 findAll() 方法),但是在构建查询时它在执行以下操作时失败了:
Root<U> root = query.from(domainClass);
除了这个例外:
Caused by: java.lang.IllegalArgumentException: Not an entity: class es.prodevelop.pui.common.jpa.model.views.dto.VLanguage
at org.hibernate.jpa.internal.metamodel.MetamodelImpl.entity(MetamodelImpl.java:194)
at org.hibernate.jpa.criteria.QueryStructure.from(QueryStructure.java:124)
at org.hibernate.jpa.criteria.CriteriaQueryImpl.from(CriteriaQueryImpl.java:156)
at es.prodevelop.pui.common.jpa.configuration.AbstractRepository.applySpecificationToCriteria(AbstractRepository.java:213)
at es.prodevelop.pui.common.jpa.configuration.AbstractRepository.getQuery(AbstractRepository.java:174)
at es.prodevelop.pui.common.jpa.configuration.AbstractRepository.findAll(AbstractRepository.java:151)
...
有人知道怎么解决吗?
您缺少 @Entity
注释。
请注释您的 class 并重试。