gpt4 book ai didi

java |将字符串保留为枚举

转载 作者:行者123 更新时间:2023-12-02 11:00:48 25 4
gpt4 key购买 nike

假设我有一个类MyClass:

public class MyClass {

@Id
private int id;

@???
private String cityName;

// getters and setters

}

现在我希望我的架构由两个表组成:

  • MyClassTable:id INT PRIMARY KEY,city INT FOREIGN KEY ON CityTable.id
  • CityTable:id INT PRIMARY KEY,名称 VARCHAR

我是否必须为 City 创建一个具有两个属性的新类:int IdString name?是否可以仅使用 MyClass 类在 cityName 上添加一些特殊注释来实现此目的?

最佳答案

您应该创建表“城市”,它是一种“字典”。所以你可以将它映射到 Immutable实体:

@Entity
@Immutable
@Table(name = "cities")
public class City {
@Id private Integer id;
private String name;
}

(并将其数据填充到数据库层)。

那么你的“数据”实体应该有 @ManyToOneCity 实体的引用:

@Entity
@Table(name = "my_classes")
public class MyClass {

@Id
@GeneratedValue
private Long id;

// ...

@ManyToOne
private City city;
}

这将对应于以下my_classes表(例如PostgreSQL方言) - 注意外键city_id:

create table my_classes (
id bigint not null constraint my_classes_pkey primary key,
-- ...
city_id integer constraint fk_my_classes_cities references cities
)

关于 java |将字符串保留为枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51343509/

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