[英]Spring Data JPA - NonUniqueResultException: query did not return a unique result: 2
[英]JPA @Query gives NonUniqueResultException
我有這樣的實體
@Builder
@Entity
@AllArgsConstructor
@NoArgsConstructor
@Getter
@Setter
@Table(name = "fulfillment_purchase_orders")
public class FulfillmentPurchaseOrder extends Audit implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column
private Integer id;
@Column(name = "purchase_order_id")
private Integer purchaseOrderId;
@Column(name = "version")
private Integer version;
但我想從版本中獲取最新數據。 我嘗試使用此代碼:
@Query("select f from FulfillmentPurchaseOrder f where f.purchaseOrderId =?1 order by f.version desc")
Optional<FulfillmentPurchaseOrder> findByPurchaseOrderId(Integer purchaseOrderId);
但我有這樣的錯誤
query did not return a unique result: 2; nested exception is javax.persistence.NonUniqueResultException: query did not return a unique result: 2",
我的問題是如何查詢僅按版本獲取最新使用訂單?
使用子查詢,如:
@Query("select * from FulfillmentPurchaseOrder f where f.purchaseOrderId = (SELECT max(fp.purchaseOrderId) FROM FulfillmentPurchaseOrder fp)")
Optional<FulfillmentPurchaseOrder> findByPurchaseOrderId(Integer purchaseOrderId);
您的查詢返回的結果不止一個。 嘗試使查詢成為本機並在末尾添加LIMIT 1
,如下所示:
@Query(nativeQuery = true, value = "select f from FulfillmentPurchaseOrder f where f.purchaseOrderId =?1 order by f.version desc LIMIT 1")
Optional<FulfillmentPurchaseOrder> findByPurchaseOrderId(Integer purchaseOrderId);
LIMIT 1
表示返回匹配的第一行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.