簡體   English   中英

JAVA JPA UUID作為列表傳遞

[英]JAVA JPA UUID passing as List

我想在JPA中傳遞UUID列表。

下面給出的是我的代碼

實體類

@Entity
public class MyEntity  {
    @Id
    @Convert(converter = UUIDConverter.class)
    private UUID id;


    @Convert(converter = UUIDConverter.class)
    private UUID someUuid;

    // getters and setters

}

存儲庫類:

public interface MyEntityRepository extends JpaRepository<MyEntity, UUID> {
    List<MyEntity> findBySomeUuidIn(List<UUID> someUUIDs);
}

但是我得到了錯誤

Internal Exception: org.postgresql.util.PSQLException: ERROR: operator does not exist: uuid = record
  Hint: No operator matches the given name and argument type(s). You might need to add explicit type casts.
  Position: 234
Error Code: 0

同時調用myEntityRepository.findBySomeUuidIn(someUUIdList)

請幫忙。 謝謝

如您的錯誤所述,您可能需要強制轉換參數。 防爆

SELECT * FROM MyEntity obj WHERE obj.someUuid = CAST(:someUuid AS uuid)

我還沒有嘗試過,但是根據WHERE子句中的UUID查詢,postgresql出現了問題,它說在JPA模型中,UUID列需要使用@Type(type="org.hibernate.type.PostgresUUIDType")注釋@Type(type="org.hibernate.type.PostgresUUIDType")

討論將Type指定為JDBC的必要性的更好討論不包括UUID作為其通用SQL類型之一, 每個數據庫切換Hibernate的UUID類型映射

您可能想嘗試一下是否有幫助。

暫無
暫無

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

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