春天找到所有父母的礼仪

问题描述 投票:0回答:2

我正在使用JHipster来生成一个应用程序。我有这张地图:Arquivo与Tabela有OneToMany关系。 Tabela与Campo有OneToMany关系。

Arquivo有一个名为“versao”的属性(字符串)。我想做的事情如下:

Page<Campo> findAllByArquivoVersao(String versao, Pageable pageable);

但是我收到了这个错误:

无法为方法public abstract org.springframework.data.domain.Page br.com.app.repository.CampoRepository.findAllByArquivoVersao(java.lang.String,org.springframework.data.domain.Pageable)创建查询!没有找到类型Campo的物业arquivoVersao!

我能够做像findAllByTabelaId这样的事情...所以我的映射是可以的。如何通过父母父母的属性进行查询过滤?

spring jhipster findall
2个回答
1
投票

选项1

ArquivoRepository找到你的Arquivo by Versao,然后给每个人打电话给arquivo.getTabelas()getCampos(),以获得你想要的露营地。

选项2

@Query中定义自己的CampoRepository,如下所示:

@Query("select c from Campo c where c.tabela.arquivo.versao = :versao")
Page<Campo> findAllByArquivoVersao(@Param("versao") String versao, Pageable pageable);

如果你想通过部分比较他们的Campos versao,你可以这样做:

@Query("select c from Campo c where upper(c.tabela.arquivo.versao) like concat('%',upper(:versao),'%')")
Page<Campo> findAllByArquivoVersao(@Param("versao") String versao, Pageable pageable);

如果不确切知道你如何设计你的实体(取物,可空性......),这就像我猜的那样多。

我没有测试任何这段代码。


0
投票

我知道了。 Spring docs关于4.4.3项规定了这种情况:

我必须这样命名我的接口方法:findByTabelaArquivoVersao

© www.soinside.com 2019 - 2024. All rights reserved.