gpt4 book ai didi

java - 如何将双向 map 保存在数据库中?

转载 作者:行者123 更新时间:2023-11-29 14:20:26 25 4
gpt4 key购买 nike

我想创建一个数据库表,其中 iso2 代码映射到它们的 iso3 等效项,例如:

DE <-> DEU德国:

@Entity
public class LanguageCode {
@Id
private String iso2;

@Id
private String iso3;

private String countryName;
}

我希望能够双向查找:

dao.findByIso3("DEU"); //returns DE
dao.findByIso2("DE"); //returns DEU

如果可能的话,我该如何实现它。如何查询两个表都是主键?

此外,每个 iso2 + iso3 代码必须是唯一的。

问题是:如果只有 iso2 会是 @Id , 我可以使用 dao.find(iso2)因为 2 字母代码充当主键。但是,如果我有一个 iso2+iso3 组合的复合键,我不能像这样查询它,因为我只能查询组合。

所以我必须使用 SELECT .. FROM .. WHERE iso3 = 'DEU'这当然可行,但我认为可能有更好的方法直接使用主键而不是 where选择?

最佳答案

选择其中一列作为 PK,并使另一列“恰好”唯一:

create table language_codes
(
iso3 text not null primary key,
iso2 text not null unique,
country_name text not null
);

唯一列就是所谓的“备用键”。

关于java - 如何将双向 map 保存在数据库中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29518212/

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