我有一个 APIObject 列表 List<APIObjects> apiObjectList
作为我的 API 的输入(通过 HTTP-Post),我需要检查该对象中的所有参数是否存在于我的数据库中
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)
最佳答案
如果您想从方法名称创建查询,您应该更改存储库方法:
List<DatabaseObject> findByGroupIdAndArtifactIdAndVersion(String groupId, String artifactId, String version);
或者使用 In
关键字:
List<DatabaseObject> findByAPIobjectIn(Collection<APIObject> apis)
参见Query Creation了解更多详情。
关于java - 使用输入列表获取实体对象列表 : Spring Data JPA - Hibernate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53005952/