gpt4 book ai didi

java - 使用 JPQL 过滤具有唯一 ID 的重复记录

转载 作者:搜寻专家 更新时间:2023-11-01 02:47:55 24 4
gpt4 key购买 nike

我正在查询一个维护不善的建筑物数据库,该数据库具有类似于以下的记录:

ID    NAME          CODE
54 Building A a1234
97 Building A a1234

我正在使用以下 JPQL 语句进行查询(其中“bCodes”是一组建筑规范):

SELECT building FROM Building building WHERE building.NAME IN (:bCodes)

正如预期的那样,如果 bCodes = "a1234",我会取回两条记录。 JPQL 中有没有办法只拉回其中一条记录?到目前为止,我找不到办法 - GROUP BY 和 DISTINCT 似乎在这种情况下不起作用。

最佳答案

我会建议修复您的数据库(删除重复项并对适当的列设置唯一约束)。但是,要回答您的问题,您可以使用选择任意 id 的子查询进一步过滤您的查询:

SELECT building FROM Building building 
WHERE building.code IN :bCodes
AND building.id = (SELECT MIN(b2.id) FROM Building b2
WHERE b2.name = building.name
AND b2.code = building.code)

关于java - 使用 JPQL 过滤具有唯一 ID 的重复记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17795860/

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