Java | 将字符串持久化为枚举

假设我有一堂课MyClass:


public class MyClass {


  @Id

  private int id;


  @???

  private String cityName;


  // getters and setters


}

现在,我希望我的架构包含两个表:


MyClassTable:id INT主键,CityTable.id上的城市INT外键

CityTable:id INT主键,名称VARCHAR

我是否必须为City创建一个具有两个属性的新类:int Id和String name?是否可以仅使用MyClass带有特殊注释的类来完成此操作cityName?


呼如林
浏览 111回答 1
1回答

呼啦一阵风

您应该创建表“ city”,这是一种“字典”。因此,您可以将其映射到不可变实体:@Entity@Immutable@Table(name = "cities")public class City {    @Id private Integer id;    private String name;}(并将其数据填充到数据库层)。然后,您的“数据”实体应具有对该实体的@ManyToOne引用City:@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)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java