Java 如何使用JPA将多个枚举值保存到数据库?
我有一个服务器类,我想将服务器对象保存到数据库中。我创建了一个如下的实体,但问题是有不必要的字段 例如,Linux操作系统记录也有WindowsOperatingSystemVersion列。如何有效地将多个枚举值保存到数据库Java 如何使用JPA将多个枚举值保存到数据库?,java,jpa,enums,Java,Jpa,Enums,我有一个服务器类,我想将服务器对象保存到数据库中。我创建了一个如下的实体,但问题是有不必要的字段 例如,Linux操作系统记录也有WindowsOperatingSystemVersion列。如何有效地将多个枚举值保存到数据库 @Entity @Table(name = "server") public class Server{ @Column private OperatingSystem os; @Column private LinuxOperatin
@Entity
@Table(name = "server")
public class Server{
@Column
private OperatingSystem os;
@Column
private LinuxOperatingSystemVersion losv;
@Column
private WindowsOperatingSystemVersion wosv;
}
public enum OperatingSystem{
LINUX,
WINDOWS
}
public enum LinuxOperatingSystemVersion{
UBUNTU,
SOLARIS
}
public enum WindowsOperatingSystemVersion{
WINDOWS10,
XP
}
仅枚举不是一个好的设计。这将是一个替代设计,但我不知道确切的要求
@Entity
public class Server {
@OneToMany
OperatingSystem operatingSystem;
}
@Entity
public class OperatingSystem {
@Enumerated(EnumType.STRING)
OperatingSystemEnum operatingSystemEnum;
@Enumerated(EnumType.STRING)
OperatingSystemVersion operatingSystemVersion;
}
public enum OperatingSystemEnum {
LINUX,
WINDOWS
}
public enum OperatingSystemVersion {
UBUNTU,
SOLARIS,
WINDOWS10,
XP
}
仅枚举不是一个好的设计。这将是一个替代设计,但我不知道确切的要求
@Entity
public class Server {
@OneToMany
OperatingSystem operatingSystem;
}
@Entity
public class OperatingSystem {
@Enumerated(EnumType.STRING)
OperatingSystemEnum operatingSystemEnum;
@Enumerated(EnumType.STRING)
OperatingSystemVersion operatingSystemVersion;
}
public enum OperatingSystemEnum {
LINUX,
WINDOWS
}
public enum OperatingSystemVersion {
UBUNTU,
SOLARIS,
WINDOWS10,
XP
}
@Enumerated
注释Solaris不是Linux的变体。我也注意到了这一点:D@Enumerated
注释Solaris不是Linux的变体。我也注意到了这一点:D