Java 以下查询的Spring数据JPA方法是什么
我试图使用SpringDataJPA,我有一个包含许多字段的Jobs表。我需要作业列表表中的列表WebCart\u Id。与下面的查询类似: 从作业中选择WebCart\u作业\u id; 我正在存储库中使用此方法,但它给出了以下错误:Java 以下查询的Spring数据JPA方法是什么,java,hibernate,spring-data-jpa,Java,Hibernate,Spring Data Jpa,我试图使用SpringDataJPA,我有一个包含许多字段的Jobs表。我需要作业列表表中的列表WebCart\u Id。与下面的查询类似: 从作业中选择WebCart\u作业\u id; 我正在存储库中使用此方法,但它给出了以下错误: public List<Long> findAllByjobSequenceId(Collection<Jobs> jobList); 我的职业课: @Table(name = "jobs") @Entity public class
public List<Long> findAllByjobSequenceId(Collection<Jobs> jobList);
我的职业课:
@Table(name = "jobs")
@Entity
public class Jobs implements Serializable {
private static final long serialVersionUID = -6118237317414158154L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Long Id;
@Column(name = "webcrt_job_id")
private Long jobSequenceId;
@Column(name = "component_id")
private Long componentId;
@Column(name = "shop_id")
private Long shopId;
@Column(name = "job_number")
private String jobNumber;
@Column(name = "job_description")
private String jobDescription;
@Column(name = "status")
private String status;
@Column(name = "customer_name")
private String customerName;
@Column(name = "receipt_date")
private Date receiptDate;
@Column(name = "shipment_date")
private Date shipmentDate;
@Column(name = "turbine_serial_number")
private String turbineSerialNumber;
@Column(name = "creation_date")
private Date creationDate;
@Column(name = "created_by")
private String createdBy;
@Column(name = "last_updated_date")
private Date updatedDate;
@Column(name = "last_updated_by")
private String updatedBy;
@Column(name = "is_delete")
private String isDelete;
public Jobs() {
}
按照您喜欢的方式命名方法,并使用
@Query
对其进行注释:
@Query("select j.jobSequenceId from Jobs j")
public List<Long> findAllJobSequenceIds();
@Query(“从作业j中选择j.jobSequenceId”)
公共列表findAllJobSequenceIds();
由于
作业
的实例代表一个作业,因此类应命名为作业
,而不是作业
,以您喜欢的方式命名方法,并用@Query
对其进行注释:
@Query("select j.jobSequenceId from Jobs j")
public List<Long> findAllJobSequenceIds();
@Query(“从作业j中选择j.jobSequenceId”)
公共列表findAllJobSequenceIds();
既然
Jobs
的一个实例代表一个job,那么类应该命名为job
,而不是Jobs
,既然已经有了作业集合,为什么还要再次查询数据库?只需迭代集合并收集jobSequenceId
顺便说一下。。。异常表示您将按jobSequenceId进行查询,而不是将结果限制为jobSequenceId。因此,该方法需要一个包含您正在查询的SequenceID的列表。既然已经有了作业集合,为什么还要再次查询数据库?只需迭代集合并收集jobSequenceId
顺便说一下。。。异常表示您将按jobSequenceId进行查询,而不是将结果限制为jobSequenceId。因此,该方法需要一个包含您正在查询的SequenceID的列表。我认为应该是find或findAll。SQL中没有WHERE子句。我认为应该是find或findAll。SQL中没有WHERE子句。我同意重命名作业。但我认为这里使用的是基于方法的查询,因此只有DAOI接口,没有具体的实现。因此,问题是如何命名方法。当使用基于方法的查询时,我认为不支持将结果限制为一个属性。您不需要为该方法提供任何实现。只需将该方法添加到DAO接口,如上图所示进行注释。基于方法的查询适用于非常简单的情况。是的,这将是正确的方法。但看起来作业集合已经存在,因为它是作为参数传递的。所以我不明白为什么从完全填充的实体中查询单个属性…@sromit它不是本机查询。本机qery是一个SQL查询。这是一个JPQL查询。我同意重命名作业。但我认为这里使用的是基于方法的查询,因此只有DAOI接口,没有具体的实现。因此,问题是如何命名方法。当使用基于方法的查询时,我认为不支持将结果限制为一个属性。您不需要为该方法提供任何实现。只需将该方法添加到DAO接口,如上图所示进行注释。基于方法的查询适用于非常简单的情况。是的,这将是正确的方法。但看起来作业集合已经存在,因为它是作为参数传递的。所以我不明白为什么从完全填充的实体中查询单个属性…@sromit它不是本机查询。本机qery是一个SQL查询。这是一个JPQL查询。实际上,我们正在尝试将一个数据库与另一个数据库同步,因此我们希望检查一个数据库与另一个数据库的最新数据,但当您有作业集合时,您也有JobSequenceID。。。或者我遗漏了什么?实际上我需要从目标数据库获取SequenceID列表,以便我可以从源数据库添加额外的SequenceID(作业)。实际上我们正在尝试将一个数据库与另一个数据库同步,因此,我们希望用另一个数据库检查一个数据库的最新数据,但当您有作业集合时,您也有JobSequenceID。。。或者我遗漏了什么?实际上,我需要从目标数据库获取SequenceID列表,以便从源数据库添加额外的SequenceID(作业)