JPA по объекту в объекте с использованием атрибута, который не является @Id - PullRequest
0 голосов
/ 14 февраля 2019

Я хотел бы знать, возможно ли создать JPA без использования аннотации @Query для получения результатов из атрибута объекта внутри объекта, к которому я обращаюсь.

Я могу`Список 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, чтобы получить список OcorrenciaParticipante, используя атрибут codigo из класса Ocorrencia.

Когда я делаю вышеизложенное и вызываю мою конечную точку, передавая значение переменной 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

Возможно ли это?

1 Ответ

0 голосов
/ 14 февраля 2019

Я думаю, вам просто нужно включить вложенное свойство в сигнатуру метода репозитория:

List<OcorrenciaParticipante> findAllByOcorrenciaCodigo

Документы Spring для него: https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#repositories.query-methods.query-property-expressions

Аналогичный вопрос для дальнейшего обсуждения: JPA данных Spring находят по встроенному объекту

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...