我有一个2.1.4版本的项目,带有spring boot数据。
该项目具有以下关系实体:ApplicationEntity ApplicationTranslateEntity LanguageEntity它在数据库中有一个区域设置关系表(ManyToMany),该表中有一个用于不同语言的文本的额外表(ApplicationTranslateEntity)。
@Getter
@Setter
public class ApplicationEntity {
@Id
private Long id;
private String urlImage;
private String urlStoreiOS;
private String urlStoreAndroid;
@OneToMany(mappedBy = "application")
Set<ApplicationTranslationEntity> applicationTranslationEntities;
}
@Getter
@Setter
public class ApplicationTranslationEntity {
@EmbeddedId
ApplicationTranslationKey id;
@ManyToOne
@MapsId("application_id")
@JoinColumn(name = "application_id")
ApplicationEntity application;
@ManyToOne
@MapsId("language_id")
@JoinColumn(name = "language_id")
LanguageEntity language;
@Column(length = 100)
private String name;
@Column(length = 1000)
private String description;
}
public interface ApplicationProjection {
Long getId();
String getName();
String getDescription();
String getUrlImage();
String getUrlStoreiOS();
String getUrlStoreAndroid();
}
@Query("select a.id as id, a.urlImage as urlImage, at.name as name, at.description as description from ApplicationEntity a left join a.applicationTranslationEntities at on at.language.key = :language")
Page<ApplicationProjection> findAllByLanguage(Pageable pageable, Language language);
@GetMapping()
Page<ApplicationDto> all(Pageable pageable, @RequestHeader(value= headerAcceptEncoding, required = false) Language language){
return applicationService.findAll(pageable,language);
}
org.hibernate.QueryException:无法解析属性:名称:******Entity.ApplicationEntity[选择a.id作为id,a.urlImage作为urlStoreiOS,a.urlStoreAndroid作为urlStoreAndroid,a.name作为名称,a.description作为描述从********.Entity.ApplicationEntity左联接a.applicationtranslationEntitya.at.language.key=:语言顺序由a.id asc,a.name asc];嵌套异常为java.lang.IllegalArgumentException:org.hibernate.QueryException:无法解析属性:名称:********.Entity.ApplicationEntity[选择a.id作为id,a.urlImage作为urlStoreiOS,a.urlStoreAndroid作为urlStoreAndroid,a.name作为名称,a.description作为描述从**********.Entity.ApplicationEntity左联接a.applicationtranslationEntity.at.language.key=:语言顺序由a.id asc,a.name asc]
您正在使用name
的分页属性,而它应该是applicationtranslationentities.name
(属性路径)或a.name
(根据连接路径)。
我对Angular project和TypeScript的语法有一个问题,我做了一个新的空Angular project,但PhpStorm(2019.2.1)不识别TypeScript语法。
我想优化一个queryDSL+Spring数据查询。目前我使用BooleanBuilder作为谓词,这很好,但是它连接了太多的表。我不需要表中的所有列,也不需要某些表。我相信使用投影会减少加入的表的数量。 那么,如何使QueryDSL连接表而不是从所有表中进行选择呢?我尝试优化查询是否正确?投影有意义吗?
我有一个使用投影的查询,只要返回类型是,它就可以正常工作,但添加分页后它就停止工作了。 以下是工作代码: 我需要扩展它添加分页,所以我将其更改为: 我添加的查询过于简化,我的实际查询实际上从不同的表中收集不同的值,如果没有投影,我无法实现它 我使用的是Spring Boot 1.5.8。发布
MongoDB 中的投影即查询指定的字段,而不是直接查询文档的全部字段。比如说某个文档中有 5 个字段,而我们只需要其中的 3 个字段,那么就可以使用 MongoDB 中的投影来指定需要查询的 3 个字段。 在《 MongoDB查询文档》一节中我们介绍的 find() 方法,在使用 find() 方法时,如果不设置其中的第二个参数,那么在查询时将返回文档中的所有字段,想要限制要查询的字段,您就需要
我正在使用JPA投影,但当我的查询包含子查询时,它就失败了。例如: 下面是投影的界面: 和存储库: 关于如何使用JPA投影的子查询有什么想法吗? 谢谢。
问题内容: 我正在尝试使用spring数据,投影的新功能来获取部分实体(NetworkSimple)的页面 我已经检查了文档,如果仅要求: 它可以工作,但是如果我使用的是可分页: 它抛出一个错误: 有人已经为此工作了吗? 我的NetworkSimple类如下: 问题答案: 注意: 此功能应按照原始海报所描述的方式工作,但由于此错误而未能实现。该错误已针对Hopper SR2版本进行了修复,如果您停