我想知道是否可以在不使用@Query批注的情况下创建JPA来从我正在查询的对象内部的对象的属性中获取结果。
我能够很好地列出findAllById(Long id),但是我想知道的是是否有可能进行类似的查询,以查找该类内对象的属性,例如域如下:
public class OcorrenciaParticipante
@Id
@Column(name = "cod_ocorrencia_participante")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long codigo;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "cod_ocorrencia", referencedColumnName = "cod_ocorrencia")
private Ocorrencia ocorrencia;
public class Ocorrencia
@Id
@Column(name = "cod_ocorrencia")
private Long codigo;
我想要写的是类似List<OcorrenciaParticipante> findAllByOcorrencia
的东西,以使用Ocorrencia类中的codigo
属性来获得OcorrenciaParticipante的列表。
执行上述操作并调用端点传递变量codigo的值时,出现异常:
java.lang.IllegalArgumentException: Parameter value [1] did not match expected type [project.model.oc.Ocorrencia (n/a)]
我已经尝试使用此处的信息https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#repository-query-keywords
有可能吗?
答案 0 :(得分:1)
我认为您只需要在存储库方法签名中包括嵌套属性:
List<OcorrenciaParticipante> findAllByOcorrenciaCodigo