簡體   English   中英

無法使用 JPA 查詢檢索結果

[英]Unable to retrieve results using JPA query

我正在嘗試構建一個 Spring 引導 REST API 從 Z62A004B957146BB97AZ34DCAFA 獲取數據這是我在 Spring 引導 REST ZDB974A7387143CADED1Z 應用程序的存儲庫代碼中定義的 JPA 查詢方法

public interface WeekRepository extends CrudRepository<Week, UUID> {
           Iterable<Week> findByOriginId(UUID originId);
}

這是我要查詢的表的詳細信息:

CREATE TABLE `week` 
  ( 
     `id`        DOUBLE NOT NULL auto_increment, 
     `due_date`  TIMESTAMP NOT NULL, 
     `origin_id` BINARY(36) DEFAULT NULL, 
     `status`    VARCHAR(36) DEFAULT NULL, 
     PRIMARY KEY (`id`) 
  )  

我打開了登錄我的 Spring 引導應用程序,結果我可以看到 Hibernate 生成的查詢如下所示:

SELECT week0_.id        AS id1_3_, 
       week0_.due_date  AS due_date2_3_, 
       week0_.origin_id AS origin_i3_3_, 
       week0_.status    AS status4_3_ 
FROM   week week0_ 
WHERE  week0_.origin_id = ?; 

從日志中我可以看到我正在通過 controller 成功地將 JSON 中的參數 origin_id 傳遞給存儲庫代碼。 控制台中的日志打印顯示該參數被綁定到? 參數如下圖:

2021-01-15 00:44:05.916 TRACE 44612 --- [nio-8082-exec-2] o.h.type.descriptor.sql.BasicBinder      : binding parameter [1] as [VARCHAR] - [49ee49da-8e6e-45f0-a0ea-e63205077870]

但是,此查詢沒有返回任何結果。

有人能幫我嗎? 如果您需要我方面的更多信息,請告訴我。 謝謝你。

請在 originId 屬性中添加以下注釋,以使 hibernate 添加必要的轉換。 mysql 的 UUID 道具似乎存在一些問題

@Column(name = "origin_id")
@Type(type="uuid-char")
private UUID originId;

您還可以在 weekRepository 界面中使用 @Query 注釋來獲得所需的結果,如下所示:

@Query(value="select * from week0 where week0_.origin_id = ?1",nativeQuery=true )
Iterable<Week> findByOriginId(UUID originId);

在這里我假設 week0 是數據庫表名,所以檢查它並相應地更改,讓我知道這是否有效。

試試這個:

@Query(value="select * from week where origin_id = :originId", nativeQuery=true)
Iterable<Week> findByOriginId(UUID originId);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM