Получить список объектов Entity с входным списком: Spring Data JPA - Hibernate - PullRequest
0 голосов
/ 26 октября 2018

У меня есть список объектов APIObjects List<APIObjects> apiObjectList в качестве входных данных для моего API (через HTTP-сообщение), мне нужно проверить, что все параметры этого объекта существуют в моей базе данных

DatabaseObject.java

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Entity
@Table(name = "my_table")
public class DatabaseObject {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    Long id;

    @Column(name = "name")
    String name;

    @Column(name = "group_id")
    String groupId;

    @Column(name = "artifact_id")
    String artifactId;

    @Column(name = "version")
    String version;
 }

APIObject.java

@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class APIObject{
    private String groupId;
    private String artifactId;
    private String version;
}

В моем Repository Interface у меня есть такой метод

List<DatabaseObject> findByGroupIdAndArtifactIdAndVersionIn (List<APIobject> apiList);

Но я получаю это исключение

Caused by: java.lang.IllegalArgumentException: No parameter available for part artifactId SIMPLE_PROPERTY (1): [Is, Equals].

Как написать Spring-data-JPA метод для этого?Все три параметра должны соответствовать (groupid, artifactid and version)

Ответы [ 2 ]

0 голосов
/ 26 октября 2018

Попробуйте использовать Запрос по методике .В вашем случае решение может выглядеть так:

DatabaseObject dbObject = new DatabaseObject(apiObject.getGroupId(), ...);
Iterable<DatabaseObject> dbObjects = DatabaseObjectRepository.findAll(Example.of(dbObject));
0 голосов
/ 26 октября 2018

Если вы хотите создать запрос из имен методов, вам следует изменить метод репозитория:

List<DatabaseObject> findByGroupIdAndArtifactIdAndVersion(String groupId, String artifactId, String version);

Или с ключевым словом In:

List<DatabaseObject> findByAPIobjectIn(Collection<APIObject> apis)

См. Создание запроса для более подробной информации.

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