gpt4 book ai didi

java - JPA:带有 BLOB 列的 'SELECT DISTINCT'

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:59:28 24 4
gpt4 key购买 nike

我正在尝试运行此 JPQL 查询:

SELECT DISTINCT i FROM Table i JOIN i.other o

立即失败:

"Internal Exception: java.sql.SQLException: Columns of type 'BLOB' may not be used in CREATE INDEX, ORDER BY, GROUP BY, UNION, INTERSECT, EXCEPT or DISTINCT statements because comparisons are not supported for that type."

这个错误对我来说很有意义,但我该如何解决呢?

最佳答案

您可以将 blob 对象的哈希值或校验和存储在另一列中,并在其上使用不同的运算符。

例子:

SELECT i from Table  WHERE id IN (
SELECT id FROM (
SELECT MIN(id) AS id, hash_of_i FROM Table GROUP BY hash_of_i
) t
)

我相信您可以更优雅地编写此 SQL,但它会给您一个想法。

编辑 - 刚刚意识到使用它可以完全免除 Distinct 运算符(它在功能上等同于删除它)。

编辑 2 - 我不确定我的第一个版本是否有效,所以重写了它

关于java - JPA:带有 BLOB 列的 'SELECT DISTINCT',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/480324/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com